Browse Source

!10671 [MS][LITE]fix bug of tf model parser for identity const

From: @mengyuanli
Reviewed-by: @hangangqiang,@zhanghaibo5
Signed-off-by: @hangangqiang
tags/v1.2.0-rc1
mindspore-ci-bot Gitee 5 years ago
parent
commit
8278c246f3
2 changed files with 9 additions and 0 deletions
  1. +1
    -0
      mindspore/lite/tools/converter/legacy_optimizer/graph/switch_pass.cc
  2. +8
    -0
      mindspore/lite/tools/converter/parser/tf/tf_node_parser.cc

+ 1
- 0
mindspore/lite/tools/converter/legacy_optimizer/graph/switch_pass.cc View File

@@ -209,6 +209,7 @@ STATUS SingleSwitchPass::InsertMerge() {
merge_node->inputIndex.push_back(old_merge_input[i]); merge_node->inputIndex.push_back(old_merge_input[i]);
} else { } else {
auto tensor = NewTensor(in_tensor); auto tensor = NewTensor(in_tensor);
tensor->nodeType = schema::NodeType_CNode;
graph_->allTensors.push_back(std::move(tensor)); graph_->allTensors.push_back(std::move(tensor));
merge_node->inputIndex.push_back(graph_->allTensors.size() - 1); merge_node->inputIndex.push_back(graph_->allTensors.size() - 1);
} }


+ 8
- 0
mindspore/lite/tools/converter/parser/tf/tf_node_parser.cc View File

@@ -37,6 +37,14 @@ const NodeDef *TFNodeParser::GetConstInputNode(const std::map<string, const tens
return nullptr; return nullptr;
} }
auto node = tf_node_map.at(flatten_input_name); auto node = tf_node_map.at(flatten_input_name);
// node is "Identity Const"
if (node->op() == "Identity") {
flatten_input_name = TensorFlowUtils::GetFlattenNodeName(node->input(0));
if (tf_node_map.find(flatten_input_name) == tf_node_map.end()) {
return nullptr;
}
node = tf_node_map.at(flatten_input_name);
}
if (node->op() != "Const") { if (node->op() != "Const") {
MS_LOG(ERROR) << "Attr node is not Const"; MS_LOG(ERROR) << "Attr node is not Const";
return nullptr; return nullptr;


Loading…
Cancel
Save