Skip to content

Commit f7f1e8d

Browse files
committed
added a mapping from onnx outputs to cntk outputs into the graph's description
1 parent 99a272b commit f7f1e8d

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

Source/CNTKv2LibraryDll/proto/onnx/CNTKToONNX.cpp

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,32 @@ class CNTKToONNXHelper
158158
return description;
159159
}
160160

161+
//
162+
// ONNX model description (of CNTK exported model) is in this format:
163+
// <<<ONNXOutputName, CNTKNodeName>>> pair: <<<onnx_name_0, cntk_name_0>>> <<<onnx_name_0, cntk_name_1>>>
164+
//
165+
static std::string GetModelOutputNamePairDescription()
166+
{
167+
std::string description = "<<<ONNXOutputName, CNTKNodeName>>> pair: ";
168+
bool first = true;
169+
for (auto iter = outputUidNameMap.begin(); iter != outputUidNameMap.end(); ++iter)
170+
{
171+
std::string cntk_name = iter->second;
172+
if (cntk_name == "")
173+
continue;
174+
auto uid_iter = uidNodeNameMap.find(iter->first);
175+
if (uid_iter != uidNodeNameMap.end())
176+
{
177+
if (first)
178+
description += " ";
179+
else
180+
first = false;
181+
description += ("<<<" + uid_iter->second + ", " + cntk_name + ">>>");
182+
}
183+
}
184+
return description;
185+
}
186+
161187
//
162188
// Generate unique name based on nodeName, opName and uid.
163189
//
@@ -1250,9 +1276,10 @@ void CNTKToONNXHelper::Copy(const FunctionPtr& src, onnxruntime::Graph* dst)
12501276
PostProcessGraph(dst);
12511277

12521278
//
1253-
// Save (Uid, ONNXNodeName) pair for all nodes to graph description.
1279+
// Save (Uid, ONNXNodeName) pair and (ONNXOutputName, CNTKNodeName) pair for all nodes to graph description.
12541280
//
1255-
dst->SetDescription(UniqueNodeNameStorage::GetUidNodeNamePairDescription());
1281+
dst->SetDescription(UniqueNodeNameStorage::GetUidNodeNamePairDescription() + "\n" +
1282+
UniqueNodeNameStorage::GetModelOutputNamePairDescription());
12561283
}
12571284

12581285
void CNTKToONNXHelper::HandleRootCombineOp(const FunctionPtr& src, onnxruntime::Graph* dst)
@@ -9147,4 +9174,4 @@ std::unordered_map<std::string, std::string> CNTKToONNXHelper::UniqueNodeNameSto
91479174
std::unordered_set<std::string> CNTKToONNXHelper::UniqueNodeNameStorage::nodeNameSet;
91489175
std::unordered_map<Variable, Variable> CNTKToONNXHelper::UniqueNodeNameStorage::compositeOutputsMap;
91499176
std::unordered_map<Variable, Variable> CNTKToONNXHelper::compositeOutputsMap;
9150-
std::unordered_set<CNTKToONNXHelper::PostProcessFlag, CNTKToONNXHelper::PostProcessFlagHash> CNTKToONNXHelper::postProcessFlags;
9177+
std::unordered_set<CNTKToONNXHelper::PostProcessFlag, CNTKToONNXHelper::PostProcessFlagHash> CNTKToONNXHelper::postProcessFlags;

0 commit comments

Comments
 (0)