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