From 91f7f971383b55984485068cda95d6e814e8885c Mon Sep 17 00:00:00 2001 From: Dmitry Kurtaev Date: Thu, 4 Apr 2019 13:15:26 +0300 Subject: [PATCH] Test data for conditional BatchNorm from TensorFlow --- testdata/dnn/tensorflow/generate_tf_models.py | 28 +++++++++++++++++- .../dnn/tensorflow/slim_batch_norm_in.npy | Bin 0 -> 320 bytes .../dnn/tensorflow/slim_batch_norm_net.pb | Bin 0 -> 20708 bytes .../dnn/tensorflow/slim_batch_norm_out.npy | Bin 0 -> 1616 bytes 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 testdata/dnn/tensorflow/slim_batch_norm_in.npy create mode 100644 testdata/dnn/tensorflow/slim_batch_norm_net.pb create mode 100644 testdata/dnn/tensorflow/slim_batch_norm_out.npy diff --git a/testdata/dnn/tensorflow/generate_tf_models.py b/testdata/dnn/tensorflow/generate_tf_models.py index 8c282228d..bbc4de449 100644 --- a/testdata/dnn/tensorflow/generate_tf_models.py +++ b/testdata/dnn/tensorflow/generate_tf_models.py @@ -30,7 +30,7 @@ def prepare_for_dnn(sess, graph_def, in_node, out_node, out_graph, dtype, optimi graph_def = TransformGraph(graph_def, [in_node], [out_node], transforms) # Serialize with tf.gfile.FastGFile(out_graph, 'wb') as f: - f.write(graph_def.SerializeToString()) + f.write(graph_def.SerializeToString()) tf.reset_default_graph() tf.Graph().as_default() @@ -677,6 +677,32 @@ def pad_depth(x, desired_channels): softmax = tf.contrib.slim.softmax(conv) save(inp, softmax, 'slim_softmax') ################################################################################ +# issue https://github.com/opencv/opencv/issues/14224 +inp_node = 'img_inputs' +out_node = 'MobileFaceNet/MobileFaceNet/Conv2d_0/add' +with tf.Session(graph=tf.Graph()) as localSession: + localSession.graph.as_default() + + with tf.gfile.FastGFile('frozen_model.pb') as f: + graph_def = tf.GraphDef() + graph_def.ParseFromString(f.read()) + for node in graph_def.node: + if node.name == inp_node: + del node.attr['shape'] + + tf.import_graph_def(graph_def, name='') + + inputData = gen_data(tf.placeholder(tf.float32, [1, 4, 5, 3], inp_node)) + outputData = localSession.run(localSession.graph.get_tensor_by_name(out_node + ':0'), + feed_dict={inp_node + ':0': inputData}) + writeBlob(inputData, 'slim_batch_norm_in') + writeBlob(outputData, 'slim_batch_norm_out') + + graph_def = TransformGraph(graph_def, [inp_node], [out_node], ['fold_constants', 'strip_unused_nodes']) + with tf.gfile.FastGFile('slim_batch_norm_net.pb', 'wb') as f: + f.write(graph_def.SerializeToString()) + +################################################################################ # Uncomment to print the final graph. # with tf.gfile.FastGFile('fused_batch_norm_net.pb') as f: diff --git a/testdata/dnn/tensorflow/slim_batch_norm_in.npy b/testdata/dnn/tensorflow/slim_batch_norm_in.npy new file mode 100644 index 0000000000000000000000000000000000000000..8f72977769a82984d1ed440595de2bf2388491a7 GIT binary patch literal 320 zcmV-G0l)r}PE}1%Spfh>0DC87WpiV4CpsV}JZ3Z}EFdRlZ*p{UVQybtlC_8L9f5GFo2D#JWAQIJ1lwiQ5i^_#ySgUP>bv&lZ4GEu%*{~Ep{WADFdS(U!N0}8;;6)Qi3J`=yX z@<2bIcFMmH$(KIaR;a&r{6xRM616`}k-9$}k$^r~{T02RBXPfh3Tr=L?jS#Qcw;{( z%*ej@m>a)uk7GZ4RF=IH2+clxWW7JCng2dEwCYQ(>9 Sv4y`AZ)&}|8iT#C3M@ain}&4& literal 0 HcmV?d00001 diff --git a/testdata/dnn/tensorflow/slim_batch_norm_net.pb b/testdata/dnn/tensorflow/slim_batch_norm_net.pb new file mode 100644 index 0000000000000000000000000000000000000000..270b6fad5c599eb5ea13e76cebc461b4f5b1ed53 GIT binary patch literal 20708 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 O*RXPjVp8ur2mS}Ykkdr~ literal 0 HcmV?d00001