From 9eb79926df99e52edc635f6023f15a28aafd3e22 Mon Sep 17 00:00:00 2001 From: Triplesalt <39653793+Triplesalt@users.noreply.github.com> Date: Fri, 20 Jul 2018 03:03:17 +0200 Subject: [PATCH] Allow a different input order for Mul+Maximum. Squashed : ReLU operand order tests. --- modules/dnn/src/tensorflow/tf_importer.cpp | 8 +++++++- modules/dnn/test/test_tf_importer.cpp | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/modules/dnn/src/tensorflow/tf_importer.cpp b/modules/dnn/src/tensorflow/tf_importer.cpp index 89732b4..57d4978 100644 --- a/modules/dnn/src/tensorflow/tf_importer.cpp +++ b/modules/dnn/src/tensorflow/tf_importer.cpp @@ -1260,7 +1260,13 @@ void TFImporter::populateNet(Net dstNet) if (!next_layers.empty()) { int maximumLayerIdx = next_layers[0].second; - ExcludeLayer(net, maximumLayerIdx, 0, false); + + CV_Assert(net.node(maximumLayerIdx).input_size() == 2); + + // The input from the Mul layer can also be at index 1. + int mulInputIdx = (net.node(maximumLayerIdx).input(0) == name) ? 0 : 1; + + ExcludeLayer(net, maximumLayerIdx, mulInputIdx, false); layers_to_ignore.insert(next_layers[0].first); layerParams.set("negative_slope", scaleMat.at(0)); diff --git a/modules/dnn/test/test_tf_importer.cpp b/modules/dnn/test/test_tf_importer.cpp index 6ab0e41..bd5c63d 100644 --- a/modules/dnn/test/test_tf_importer.cpp +++ b/modules/dnn/test/test_tf_importer.cpp @@ -230,6 +230,13 @@ TEST_P(Test_TensorFlow_layers, flatten) runTensorFlowNet("unfused_flatten_unknown_batch"); } +TEST_P(Test_TensorFlow_layers, leaky_relu) +{ + runTensorFlowNet("leaky_relu_order1"); + runTensorFlowNet("leaky_relu_order2"); + runTensorFlowNet("leaky_relu_order3"); +} + TEST_P(Test_TensorFlow_layers, l2_normalize) { runTensorFlowNet("l2_normalize"); -- 2.7.4