--- /dev/null
+input, Placeholder:0, TF_FLOAT, [1, 3, 3, 5]
+output, FusedBatchNorm:0, TF_FLOAT, [1, 3, 3, 10]
--- /dev/null
+# Small DepthwiseConv2D + FusedBatchNorm network
+node {
+ name: "Placeholder"
+ op: "Placeholder"
+ attr {
+ key: "dtype"
+ value {
+ type: DT_FLOAT
+ }
+ }
+ attr {
+ key: "shape"
+ value {
+ shape {
+ dim {
+ size: 1
+ }
+ dim {
+ size: 3
+ }
+ dim {
+ size: 3
+ }
+ dim {
+ size: 5
+ }
+ }
+ }
+ }
+}
+node {
+ name: "Const"
+ op: "Const"
+ attr {
+ key: "dtype"
+ value {
+ type: DT_FLOAT
+ }
+ }
+ attr {
+ key: "value"
+ value {
+ tensor {
+ dtype: DT_FLOAT
+ tensor_shape {
+ dim {
+ size: 2
+ }
+ dim {
+ size: 2
+ }
+ dim {
+ size: 5
+ }
+ dim {
+ size: 2
+ }
+ }
+ float_val: 1
+ }
+ }
+ }
+}
+node {
+ name: "depthwise/Shape"
+ op: "Const"
+ attr {
+ key: "dtype"
+ value {
+ type: DT_INT32
+ }
+ }
+ attr {
+ key: "value"
+ value {
+ tensor {
+ dtype: DT_INT32
+ tensor_shape {
+ dim {
+ size: 4
+ }
+ }
+ int_val: 2
+ int_val: 2
+ int_val: 5
+ int_val: 2
+ }
+ }
+ }
+}
+node {
+ name: "depthwise/dilation_rate"
+ op: "Const"
+ attr {
+ key: "dtype"
+ value {
+ type: DT_INT32
+ }
+ }
+ attr {
+ key: "value"
+ value {
+ tensor {
+ dtype: DT_INT32
+ tensor_shape {
+ dim {
+ size: 2
+ }
+ }
+ int_val: 1
+ int_val: 1
+ }
+ }
+ }
+}
+node {
+ name: "depthwise"
+ op: "DepthwiseConv2dNative"
+ input: "Placeholder"
+ input: "Const"
+ attr {
+ key: "T"
+ value {
+ type: DT_FLOAT
+ }
+ }
+ attr {
+ key: "data_format"
+ value {
+ s: "NHWC"
+ }
+ }
+ attr {
+ key: "dilations"
+ value {
+ list {
+ i: 1
+ i: 1
+ i: 1
+ i: 1
+ }
+ }
+ }
+ attr {
+ key: "padding"
+ value {
+ s: "SAME"
+ }
+ }
+ attr {
+ key: "strides"
+ value {
+ list {
+ i: 1
+ i: 1
+ i: 1
+ i: 1
+ }
+ }
+ }
+}
+node {
+ name: "Const_1"
+ op: "Const"
+ attr {
+ key: "dtype"
+ value {
+ type: DT_FLOAT
+ }
+ }
+ attr {
+ key: "value"
+ value {
+ tensor {
+ dtype: DT_FLOAT
+ tensor_shape {
+ dim {
+ size: 10
+ }
+ }
+ float_val: 2
+ }
+ }
+ }
+}
+node {
+ name: "FusedBatchNorm"
+ op: "FusedBatchNorm"
+ input: "depthwise"
+ input: "Const_1"
+ input: "Const_1"
+ input: "Const_1"
+ input: "Const_1"
+ attr {
+ key: "T"
+ value {
+ type: DT_FLOAT
+ }
+ }
+ attr {
+ key: "data_format"
+ value {
+ s: "NHWC"
+ }
+ }
+ attr {
+ key: "epsilon"
+ value {
+ f: 0.001
+ }
+ }
+ attr {
+ key: "is_training"
+ value {
+ b: false
+ }
+ }
+}
--- /dev/null
+# TF_SMALL_NET_0004/test.pbtxt is create with below script
+
+# Version info
+# - Tensorflow : 1.13.1
+# - Python : 3.5.2
+
+import tensorflow as tf
+
+input = tf.placeholder(tf.float32, [1, 3, 3, 5])
+filter = tf.constant(1.0, shape=[2, 2, 5, 2])
+dconv = tf.nn.depthwise_conv2d(input, filter, [1,1,1,1], 'SAME')
+const = tf.constant(2.0,shape=[10])
+fbn = tf.nn.fused_batch_norm(x=dconv,scale=const,offset=const,mean=const,variance=const,is_training=False)
+
+print(tf.get_default_graph().as_graph_def())