diff --git a/ge/graph/load/new_model_manager/davinci_model.cc b/ge/graph/load/new_model_manager/davinci_model.cc index 6df06c1c..7427489b 100755 --- a/ge/graph/load/new_model_manager/davinci_model.cc +++ b/ge/graph/load/new_model_manager/davinci_model.cc @@ -969,7 +969,9 @@ Status DavinciModel::InitDataOp(const ComputeGraphPtr &graph, const NodePtr &nod } data_by_index[data_index] = op_desc; - data_op_list_.push_back(op_desc); + auto data_op = AttrUtils::CopyOpDesc(op_desc); + GE_CHECK_NOTNULL(data_op); + data_op_list_.push_back(data_op); if (known_node_) { return SUCCESS; } @@ -1025,7 +1027,9 @@ Status DavinciModel::OptInputOutputInfo(const map &data_by_ data_op_list_.clear(); for (auto &item : data_by_index) { - data_op_list_.emplace_back(item.second); + auto data_op = AttrUtils::CopyOpDesc(item.second); + GE_CHECK_NOTNULL(data_op); + data_op_list_.emplace_back(data_op); auto output_addrs = ModelUtils::GetOutputDataAddrs(runtime_param_, item.second); GELOGD("Data node: %s, output addr size: %zu", item.second->GetName().c_str(), output_addrs.size()); input_addrs_list_.emplace_back(output_addrs);