|
|
|
@@ -2496,26 +2496,26 @@ Status TensorFlowModelParser::OptimizeIdentityByOutput(map<string, NodeDef *> &n |
|
|
|
domi::tensorflow::NodeDef *output_node_def = nodedef_map[output_node_name]; |
|
|
|
GE_CHECK_NOTNULL(output_node_def); |
|
|
|
if (output_node_def->op() == "_Retval") { |
|
|
|
GELOGW("_Retval Identity need optimize. node:%s", curr_node_name.c_str()); |
|
|
|
GELOGD("_Retval Identity need optimize. node:%s", curr_node_name.c_str()); |
|
|
|
output_node_def->set_input(0, curr_node_def->input(0).c_str()); |
|
|
|
has_out_retval = true; |
|
|
|
GELOGW("op %s set input(0):%s.", output_node_def->name().c_str(), curr_node_def->input(0).c_str()); |
|
|
|
} else { |
|
|
|
GELOGW("[test]current node(%s).", curr_node_name.c_str()); |
|
|
|
has_out_retval = false; |
|
|
|
break; |
|
|
|
GELOGD("op %s set input(0):%s.", output_node_def->name().c_str(), curr_node_def->input(0).c_str()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// Deal with non _Retval output operator of Identity. |
|
|
|
if (has_out_retval) { |
|
|
|
std::map<std::string, std::vector<std::pair<int32_t, int32_t>>>::const_iterator output_iter = output_map.begin(); |
|
|
|
GELOGD("[test]map size:%u.", output_map.size()); |
|
|
|
for (; output_iter != output_map.end(); ++output_iter) { |
|
|
|
const string &output_node_name = output_iter->first; |
|
|
|
GELOGD("[test]node name:%s.", output_node_name.c_str()); |
|
|
|
domi::tensorflow::NodeDef *output_node_def = nodedef_map[output_node_name]; |
|
|
|
GE_CHECK_NOTNULL(output_node_def); |
|
|
|
GELOGD("[test]op name:%s, input size:%u.", output_node_def->op().c_str(), output_node_def->input_size()); |
|
|
|
GE_IF_BOOL_EXEC(output_node_def->op() == "_Retval", continue); |
|
|
|
for (int k = 0; k < output_node_def->input_size(); ++k) { |
|
|
|
GELOGD("[test]input name:%s, curr_node_name:%s.", output_node_def->input(k).c_str(), curr_node_name.c_str()); |
|
|
|
GE_IF_BOOL_EXEC( |
|
|
|
output_node_def->input(k) == curr_node_name, output_node_def->set_input(k, curr_node_def->input(0).c_str()); |
|
|
|
GELOGD("%s op set input(%d):%s.", output_node_def->name().c_str(), k, curr_node_def->input(0).c_str());) |
|
|
|
|