@@ -1082,17 +1082,26 @@ static Ptr<BackendWrapper> wrapMat(int backendId, int targetId, cv::Mat& m)
1082
1082
1083
1083
static int g_networkId = 0 ;
1084
1084
1085
- struct Net ::Impl
1085
+ detail::NetImplBase::NetImplBase ()
1086
+ : networkId(CV_XADD(&g_networkId, 1 ))
1087
+ , networkDumpCounter(0 )
1088
+ , dumpLevel(DNN_NETWORK_DUMP)
1089
+ {
1090
+ // nothing
1091
+ }
1092
+
1093
+ std::string detail::NetImplBase::getDumpFileNameBase ()
1094
+ {
1095
+ std::string dumpFileNameBase = cv::format (" ocv_dnn_net_%05d_%02d" , networkId, networkDumpCounter++);
1096
+ return dumpFileNameBase;
1097
+ }
1098
+
1099
+ struct Net ::Impl : public detail::NetImplBase
1086
1100
{
1087
1101
typedef std::map<int , LayerShapes> LayersShapesMap;
1088
1102
typedef std::map<int , LayerData> MapIdToLayerData;
1089
1103
1090
- const int networkId; // network global identifier
1091
- int networkDumpCounter; // dump counter
1092
-
1093
1104
Impl ()
1094
- : networkId(CV_XADD(&g_networkId, 1 ))
1095
- , networkDumpCounter(0 )
1096
1105
{
1097
1106
// allocate fake net input layer
1098
1107
netInputLayer = Ptr<DataLayer>(new DataLayer ());
@@ -1256,7 +1265,7 @@ struct Net::Impl
1256
1265
{
1257
1266
CV_TRACE_FUNCTION ();
1258
1267
1259
- if (DNN_NETWORK_DUMP > 0 && networkDumpCounter == 0 )
1268
+ if (dumpLevel && networkDumpCounter == 0 )
1260
1269
{
1261
1270
dumpNetworkToFile ();
1262
1271
}
@@ -1339,7 +1348,7 @@ struct Net::Impl
1339
1348
1340
1349
netWasAllocated = true ;
1341
1350
1342
- if (DNN_NETWORK_DUMP > 0 )
1351
+ if (dumpLevel )
1343
1352
{
1344
1353
dumpNetworkToFile ();
1345
1354
}
@@ -2043,7 +2052,7 @@ struct Net::Impl
2043
2052
}
2044
2053
2045
2054
if (net.empty ()) {
2046
- net = Ptr<InfEngineNgraphNet>(new InfEngineNgraphNet ());
2055
+ net = Ptr<InfEngineNgraphNet>(new InfEngineNgraphNet (* this ));
2047
2056
}
2048
2057
2049
2058
if (!fused) {
@@ -2087,7 +2096,7 @@ struct Net::Impl
2087
2096
}
2088
2097
}
2089
2098
else {
2090
- net = Ptr<InfEngineNgraphNet>(new InfEngineNgraphNet ());
2099
+ net = Ptr<InfEngineNgraphNet>(new InfEngineNgraphNet (* this ));
2091
2100
}
2092
2101
2093
2102
if (!fused)
@@ -3126,7 +3135,8 @@ struct Net::Impl
3126
3135
void dumpNetworkToFile ()
3127
3136
{
3128
3137
#ifndef OPENCV_DNN_DISABLE_NETWORK_AUTO_DUMP
3129
- String dumpFileName = cv::format (" ocv_dnn_net_%05d_%02d.dot" , networkId, networkDumpCounter++);
3138
+ string dumpFileNameBase = getDumpFileNameBase ();
3139
+ string dumpFileName = dumpFileNameBase + " .dot" ;
3130
3140
try
3131
3141
{
3132
3142
string dumpStr = dump ();
@@ -3185,7 +3195,7 @@ Net Net::Impl::createNetworkFromModelOptimizer(InferenceEngine::CNNNetwork& ieNe
3185
3195
{
3186
3196
auto fake_node = std::make_shared<ngraph::op::Parameter>(ngraph::element::f32 , ngraph::Shape{});
3187
3197
Ptr<InfEngineNgraphNode> backendNodeNGraph (new InfEngineNgraphNode (fake_node));
3188
- backendNodeNGraph->net = Ptr<InfEngineNgraphNet>(new InfEngineNgraphNet (ieNet));
3198
+ backendNodeNGraph->net = Ptr<InfEngineNgraphNet>(new InfEngineNgraphNet (*(cvNet. impl ), ieNet));
3189
3199
backendNode = backendNodeNGraph;
3190
3200
}
3191
3201
else
0 commit comments