IdentityOpsMap::iterator it = identity_ops.find(input_op_name);
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);
}
}
nodesToAdd.push_back(i);
else
{
- if (node.op() == "Merge" || node.op() == "RefMerge")
+ if (node.op() == "Merge" || node.op() == "RefMerge" || node.op() == "NoOp")
{
int numControlEdges = 0;
for (int j = 0; j < numInputsInGraph; ++j)
{
const tensorflow::NodeDef& node = net.node(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);
// Replace consumers' inputs.
}
}
nodesToRemove.push_back(i);
- if (node.op() == "Merge" || node.op() == "Switch")
+ if (node.op() == "Merge" || node.op() == "Switch" || node.op() == "NoOp")
mergeOpSubgraphNodes.push(i);
}
}
runTensorFlowNet("resize_bilinear_factor");
}
+TEST_P(Test_TensorFlow_layers, tf2_keras)
+{
+ runTensorFlowNet("tf2_dense");
+}
+
TEST_P(Test_TensorFlow_layers, squeeze)
{
#if defined(INF_ENGINE_RELEASE)