Merge pull request #16905 from dkurt:dnn_tf2_keras

This commit is contained in:
Alexander Alekhin 2020-04-07 14:59:42 +00:00
commit adf54d41d5
2 changed files with 17 additions and 3 deletions

View File

@ -682,6 +682,15 @@ void RemoveIdentityOps(tensorflow::GraphDef& net)
IdentityOpsMap::iterator it = identity_ops.find(input_op_name); IdentityOpsMap::iterator it = identity_ops.find(input_op_name);
if (it != identity_ops.end()) { if (it != identity_ops.end()) {
// In case of Identity after Identity
while (true)
{
IdentityOpsMap::iterator nextIt = identity_ops.find(it->second);
if (nextIt != identity_ops.end())
it = nextIt;
else
break;
}
layer->set_input(input_id, it->second); layer->set_input(input_id, it->second);
} }
} }
@ -847,7 +856,7 @@ void sortByExecutionOrder(tensorflow::GraphDef& net)
nodesToAdd.push_back(i); nodesToAdd.push_back(i);
else else
{ {
if (node.op() == "Merge" || node.op() == "RefMerge") if (node.op() == "Merge" || node.op() == "RefMerge" || node.op() == "NoOp")
{ {
int numControlEdges = 0; int numControlEdges = 0;
for (int j = 0; j < numInputsInGraph; ++j) for (int j = 0; j < numInputsInGraph; ++j)
@ -896,7 +905,7 @@ void removePhaseSwitches(tensorflow::GraphDef& net)
{ {
const tensorflow::NodeDef& node = net.node(i); const tensorflow::NodeDef& node = net.node(i);
nodesMap.insert(std::make_pair(node.name(), i)); nodesMap.insert(std::make_pair(node.name(), i));
if (node.op() == "Switch" || node.op() == "Merge") if (node.op() == "Switch" || node.op() == "Merge" || node.op() == "NoOp")
{ {
CV_Assert(node.input_size() > 0); CV_Assert(node.input_size() > 0);
// Replace consumers' inputs. // Replace consumers' inputs.
@ -914,7 +923,7 @@ void removePhaseSwitches(tensorflow::GraphDef& net)
} }
} }
nodesToRemove.push_back(i); nodesToRemove.push_back(i);
if (node.op() == "Merge" || node.op() == "Switch") if (node.op() == "Merge" || node.op() == "Switch" || node.op() == "NoOp")
mergeOpSubgraphNodes.push(i); mergeOpSubgraphNodes.push(i);
} }
} }

View File

@ -867,6 +867,11 @@ TEST_P(Test_TensorFlow_layers, resize_bilinear)
runTensorFlowNet("resize_bilinear_factor"); runTensorFlowNet("resize_bilinear_factor");
} }
TEST_P(Test_TensorFlow_layers, tf2_keras)
{
runTensorFlowNet("tf2_dense");
}
TEST_P(Test_TensorFlow_layers, squeeze) TEST_P(Test_TensorFlow_layers, squeeze)
{ {
#if defined(INF_ENGINE_RELEASE) #if defined(INF_ENGINE_RELEASE)