Toybrick

标题: ssd-mobilenetv1转换模型失败,求助! [打印本页]

作者: Devin    时间: 2020-3-11 14:13
标题: ssd-mobilenetv1转换模型失败,求助!
在用TF版本ssd-mobilenetv1训练后,转rknn模型时出错:AttributeError: 'NoneType' object has no attribute 'get_input_layers'. 网络输入尺寸300x300x3,类别数为2. tf版本为1.13.1,rknn-toolkit版本为1.3.0. 平台为:Ubuntu16.04虚拟机.
log日志如下:
python ssd_person.py

WARNING: The TensorFlow contrib module will not be included in TensorFlow 2.0.
For more information, please see:
  * https://github.com/tensorflow/co ... 7-contrib-sunset.md
  * https://github.com/tensorflow/addons
If you depend on functionality not listed there, please file an issue.

/home/devin/.local/lib/python3.5/site-packages/onnx_tf/common/__init__.py:87: UserWarning: FrontendHandler.get_outputs_names is deprecated. It will be removed in future release.. Use node.outputs instead.
  warnings.warn(message)
W verbose file path is invalid, debug info will not dump to file.
--> Loading model
D import clients finished
W:tensorflow:From /home/devin/.local/lib/python3.5/site-packages/rknn/api/rknn.py:68: extract_sub_graph (from tensorflow.python.framework.graph_util_impl) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.compat.v1.graph_util.extract_sub_graph
E Catch exception when loading tensorflow model: /mnt/4667845a-b9d8-4961-8c27-6796aba9e29a/rknn-toolkit-V1.2.0/example/mobilenet-ssd/frozen_inference_graph.pb!
T Traceback (most recent call last):
T   File "rknn/api/rknn_base.py", line 135, in rknn.api.rknn_base.RKNNBase.load_tensorflow
T   File "rknn/base/RKNNlib/converter/convert_tf.py", line 107, in rknn.base.RKNNlib.converter.convert_tf.convert_tf.__init__
T   File "rknn/base/RKNNlib/converter/tensorflowloader.py", line 53, in rknn.base.RKNNlib.converter.tensorflowloader.TF_Graph_Preprocess.__init__
T AttributeError: 'NoneType' object has no attribute 'op'
done
--> Building model
Traceback (most recent call last):
  File "ssd_person.py", line 77, in <module>
    rknn.build(do_quantization=False)
  File "/home/devin/.local/lib/python3.5/site-packages/rknn/api/rknn.py", line 163, in build
    inputs = self.rknn_base.net.get_input_layers()
AttributeError: 'NoneType' object has no attribute 'get_input_layers'



作者: jefferyzhang    时间: 2020-3-11 14:28
之前遇到一次是环境问题造成的。
你先跑下官方demo,看看是不是转换正常的。
作者: Devin    时间: 2020-3-11 14:44
jefferyzhang 发表于 2020-3-11 14:28
之前遇到一次是环境问题造成的。
你先跑下官方demo,看看是不是转换正常的。 ...

我这边再看下,verbose咋开启失败。demo是ok的,可以正常转换生成rknn模型。是不是节点选择问题,我的输入节点name选择的是数据层image_tensor,也尝试用第一个卷积层FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/convolution,结果都是该报错。
我的pbtxt文件如下:
node {
  name: "image_tensor"
  op: "Placeholder"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/convolution"
  op: "Conv2D"
  input: "image_tensor"
  input: "FeatureExtractor/MobilenetV1/Conv2d_0/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 2
        i: 2
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_0/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_0/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_0/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_0/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_0/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_1_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_1_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 2
        i: 2
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_2_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_2_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_3_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_3_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 2
        i: 2
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_4_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_4_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_5_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_5_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 2
        i: 2
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_6_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_6_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_7_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_7_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_8_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_8_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_9_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_9_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_10_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_10_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_11_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 2
        i: 2
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_12_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise"
  op: "DepthwiseConv2dNative"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_12_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_depthwise/depthwise_weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/depthwise"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_depthwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_depthwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_depthwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_depthwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_depthwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/BatchNorm"
}
node {
  name: "BoxPredictor_1/BoxEncodingPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6"
  input: "BoxPredictor_1/BoxEncodingPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
  attr { key: "loc_pred_transposed" value { b: true } }
}
node {
  name: "BoxPredictor_1/BoxEncodingPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_1/BoxEncodingPredictor/convolution"
  input: "BoxPredictor_1/BoxEncodingPredictor/biases"
}
node {
  name: "BoxPredictor_1/ClassPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_13_pointwise/Relu6"
  input: "BoxPredictor_1/ClassPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "BoxPredictor_1/ClassPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_1/ClassPredictor/convolution"
  input: "BoxPredictor_1/ClassPredictor/biases"
}
node {
  name: "BoxPredictor_0/BoxEncodingPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Relu6"
  input: "BoxPredictor_0/BoxEncodingPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
  attr { key: "loc_pred_transposed" value { b: true } }
}
node {
  name: "BoxPredictor_0/BoxEncodingPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_0/BoxEncodingPredictor/convolution"
  input: "BoxPredictor_0/BoxEncodingPredictor/biases"
}
node {
  name: "BoxPredictor_0/ClassPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/MobilenetV1/Conv2d_11_pointwise/Relu6"
  input: "BoxPredictor_0/ClassPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "BoxPredictor_0/ClassPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_0/ClassPredictor/convolution"
  input: "BoxPredictor_0/ClassPredictor/biases"
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_2_1x1_256/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 2
        i: 2
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/BatchNorm"
}
node {
  name: "BoxPredictor_2/BoxEncodingPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/Relu6"
  input: "BoxPredictor_2/BoxEncodingPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
  attr { key: "loc_pred_transposed" value { b: true } }
}
node {
  name: "BoxPredictor_2/BoxEncodingPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_2/BoxEncodingPredictor/convolution"
  input: "BoxPredictor_2/BoxEncodingPredictor/biases"
}
node {
  name: "BoxPredictor_2/ClassPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_2_3x3_s2_512/Relu6"
  input: "BoxPredictor_2/ClassPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "BoxPredictor_2/ClassPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_2/ClassPredictor/convolution"
  input: "BoxPredictor_2/ClassPredictor/biases"
}
node {
  name: "paddings"
  op: "Const"
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
          dim {
            size: 4
          }
          dim {
            size: 2
          }
        }
        int_val: 0
        int_val: 0
        int_val: 0
        int_val: 1
        int_val: 0
        int_val: 1
        int_val: 0
        int_val: 0
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/Relu6/padding"
  op: "Pad"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/Relu6"
  input: "paddings"
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_3_1x1_128/Relu6/padding"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 2
        i: 2
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/BatchNorm"
}
node {
  name: "BoxPredictor_3/BoxEncodingPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/Relu6"
  input: "BoxPredictor_3/BoxEncodingPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
  attr { key: "loc_pred_transposed" value { b: true } }
}
node {
  name: "BoxPredictor_3/BoxEncodingPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_3/BoxEncodingPredictor/convolution"
  input: "BoxPredictor_3/BoxEncodingPredictor/biases"
}
node {
  name: "BoxPredictor_3/ClassPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_3_3x3_s2_256/Relu6"
  input: "BoxPredictor_3/ClassPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "BoxPredictor_3/ClassPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_3/ClassPredictor/convolution"
  input: "BoxPredictor_3/ClassPredictor/biases"
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/Relu6/padding"
  op: "Pad"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/Relu6"
  input: "paddings"
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_4_1x1_128/Relu6/padding"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 2
        i: 2
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/BatchNorm"
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/BatchNorm"
}
node {
  name: "BoxPredictor_4/BoxEncodingPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/Relu6"
  input: "BoxPredictor_4/BoxEncodingPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
  attr { key: "loc_pred_transposed" value { b: true } }
}
node {
  name: "BoxPredictor_4/BoxEncodingPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_4/BoxEncodingPredictor/convolution"
  input: "BoxPredictor_4/BoxEncodingPredictor/biases"
}
node {
  name: "BoxPredictor_4/ClassPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_4_3x3_s2_256/Relu6"
  input: "BoxPredictor_4/ClassPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "BoxPredictor_4/ClassPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_4/ClassPredictor/convolution"
  input: "BoxPredictor_4/ClassPredictor/biases"
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_1_Conv2d_5_1x1_64/Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 2
        i: 2
        i: 1
      }
    }
  }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/BatchNorm"
  op: "FusedBatchNorm"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/convolution"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/BatchNorm/gamma"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/BatchNorm/beta"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/BatchNorm/moving_mean"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/BatchNorm/moving_variance"
  attr { key: "epsilon" value { f: 0.001 } }
}
node {
  name: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/Relu6"
  op: "Relu6"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/BatchNorm"
}
node {
  name: "BoxPredictor_5/BoxEncodingPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/Relu6"
  input: "BoxPredictor_5/BoxEncodingPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
  attr { key: "loc_pred_transposed" value { b: true } }
}
node {
  name: "BoxPredictor_5/BoxEncodingPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_5/BoxEncodingPredictor/convolution"
  input: "BoxPredictor_5/BoxEncodingPredictor/biases"
}
node {
  name: "BoxPredictor_5/ClassPredictor/convolution"
  op: "Conv2D"
  input: "FeatureExtractor/MobilenetV1/Conv2d_13_pointwise_2_Conv2d_5_3x3_s2_128/Relu6"
  input: "BoxPredictor_5/ClassPredictor/weights"
  attr {
    key: "padding"
    value {
      s: "SAME"
    }
  }
  attr {
    key: "strides"
    value {
      list {
        i: 1
        i: 1
        i: 1
        i: 1
      }
    }
  }
}
node {
  name: "BoxPredictor_5/ClassPredictor/BiasAdd"
  op: "BiasAdd"
  input: "BoxPredictor_5/ClassPredictor/convolution"
  input: "BoxPredictor_5/ClassPredictor/biases"
}
### Locations ##################################################################
node {
  name: "BoxPredictor_0/Flatten"
  op: "Flatten"
  input: "BoxPredictor_0/BoxEncodingPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_1/Flatten"
  op: "Flatten"
  input: "BoxPredictor_1/BoxEncodingPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_2/Flatten"
  op: "Flatten"
  input: "BoxPredictor_2/BoxEncodingPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_3/Flatten"
  op: "Flatten"
  input: "BoxPredictor_3/BoxEncodingPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_4/Flatten"
  op: "Flatten"
  input: "BoxPredictor_4/BoxEncodingPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_5/Flatten"
  op: "Flatten"
  input: "BoxPredictor_5/BoxEncodingPredictor/BiasAdd"
}
node {
  name: "concat/axis_flatten"
  op: "Const"
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        tensor_shape {
        }
        int_val: -1
      }
    }
  }
}
node {
  name: "concat"
  op: "ConcatV2"
  input: "BoxPredictor_0/Flatten"
  input: "BoxPredictor_1/Flatten"
  input: "BoxPredictor_2/Flatten"
  input: "BoxPredictor_3/Flatten"
  input: "BoxPredictor_4/Flatten"
  input: "BoxPredictor_5/Flatten"
  input: "concat/axis_flatten"
}
### Classifications ############################################################
node {
  name: "BoxPredictor_0/Flatten_1"
  op: "Flatten"
  input: "BoxPredictor_0/ClassPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_1/Flatten_1"
  op: "Flatten"
  input: "BoxPredictor_1/ClassPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_2/Flatten_1"
  op: "Flatten"
  input: "BoxPredictor_2/ClassPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_3/Flatten_1"
  op: "Flatten"
  input: "BoxPredictor_3/ClassPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_4/Flatten_1"
  op: "Flatten"
  input: "BoxPredictor_4/ClassPredictor/BiasAdd"
}
node {
  name: "BoxPredictor_5/Flatten_1"
  op: "Flatten"
  input: "BoxPredictor_5/ClassPredictor/BiasAdd"
}
node {
  name: "concat_1"
  op: "ConcatV2"
  input: "BoxPredictor_0/Flatten_1"
  input: "BoxPredictor_1/Flatten_1"
  input: "BoxPredictor_2/Flatten_1"
  input: "BoxPredictor_3/Flatten_1"
  input: "BoxPredictor_4/Flatten_1"
  input: "BoxPredictor_5/Flatten_1"
  input: "concat/axis_flatten"
}
################################################################################
node {
  name: "PriorBox"
  op: "PriorBox"
  input: "BoxPredictor_0/BoxEncodingPredictor/BiasAdd"
  input: "image_tensor"
  attr { key: "flip" value { b: false } }
  attr { key: "clip" value { b: false } }
  attr {
    key: "width"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 3
          }
        }
        float_val: 30
        float_val: 84.8528
        float_val: 42.4264
      }
    }
  }
  attr {
    key: "height"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 3
          }
        }
        float_val: 30
        float_val: 42.4264
        float_val: 84.8528
      }
    }
  }
  attr {
    key: "variance"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 4
          }
        }
        float_val: 0.1
        float_val: 0.1
        float_val: 0.2
        float_val: 0.2
      }
    }
  }
}
node {
  name: "PriorBox_1"
  op: "PriorBox"
  input: "BoxPredictor_1/BoxEncodingPredictor/BiasAdd"
  input: "image_tensor"
  attr { key: "flip" value { b: false } }
  attr { key: "clip" value { b: false } }
  attr {
    key: "width"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 105
        float_val: 125.499
        float_val: 148.492
        float_val: 74.2462
        float_val: 181.865
        float_val: 60.6218
      }
    }
  }
  attr {
    key: "height"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 105
        float_val: 125.499
        float_val: 74.2462
        float_val: 148.492
        float_val: 60.6218
        float_val: 181.865
      }
    }
  }
  attr {
    key: "variance"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 4
          }
        }
        float_val: 0.1
        float_val: 0.1
        float_val: 0.2
        float_val: 0.2
      }
    }
  }
}
node {
  name: "PriorBox_2"
  op: "PriorBox"
  input: "BoxPredictor_2/BoxEncodingPredictor/BiasAdd"
  input: "image_tensor"
  attr { key: "flip" value { b: false } }
  attr { key: "clip" value { b: false } }
  attr {
    key: "width"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 150
        float_val: 171.026
        float_val: 212.132
        float_val: 106.066
        float_val: 259.808
        float_val: 86.6025
      }
    }
  }
  attr {
    key: "height"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 150
        float_val: 171.026
        float_val: 106.066
        float_val: 212.132
        float_val: 86.6025
        float_val: 259.808
      }
    }
  }
  attr {
    key: "variance"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 4
          }
        }
        float_val: 0.1
        float_val: 0.1
        float_val: 0.2
        float_val: 0.2
      }
    }
  }
}
node {
  name: "PriorBox_3"
  op: "PriorBox"
  input: "BoxPredictor_3/BoxEncodingPredictor/BiasAdd"
  input: "image_tensor"
  attr { key: "flip" value { b: false } }
  attr { key: "clip" value { b: false } }
  attr {
    key: "width"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 195
        float_val: 216.333
        float_val: 275.772
        float_val: 137.886
        float_val: 337.75
        float_val: 112.583
      }
    }
  }
  attr {
    key: "height"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 195
        float_val: 216.333
        float_val: 137.886
        float_val: 275.772
        float_val: 112.583
        float_val: 337.75
      }
    }
  }
  attr {
    key: "variance"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 4
          }
        }
        float_val: 0.1
        float_val: 0.1
        float_val: 0.2
        float_val: 0.2
      }
    }
  }
}
node {
  name: "PriorBox_4"
  op: "PriorBox"
  input: "BoxPredictor_4/BoxEncodingPredictor/BiasAdd"
  input: "image_tensor"
  attr { key: "flip" value { b: false } }
  attr { key: "clip" value { b: false } }
  attr {
    key: "width"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 240
        float_val: 261.534
        float_val: 339.411
        float_val: 169.706
        float_val: 415.692
        float_val: 138.564
      }
    }
  }
  attr {
    key: "height"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 240
        float_val: 261.534
        float_val: 169.706
        float_val: 339.411
        float_val: 138.564
        float_val: 415.692
      }
    }
  }
  attr {
    key: "variance"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 4
          }
        }
        float_val: 0.1
        float_val: 0.1
        float_val: 0.2
        float_val: 0.2
      }
    }
  }
}
node {
  name: "PriorBox_5"
  op: "PriorBox"
  input: "BoxPredictor_5/BoxEncodingPredictor/BiasAdd"
  input: "image_tensor"
  attr { key: "flip" value { b: false } }
  attr { key: "clip" value { b: false } }
  attr {
    key: "width"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 285
        float_val: 292.404
        float_val: 403.051
        float_val: 201.525
        float_val: 493.634
        float_val: 164.545
      }
    }
  }
  attr {
    key: "height"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 6
          }
        }
        float_val: 285
        float_val: 292.404
        float_val: 201.525
        float_val: 403.051
        float_val: 164.545
        float_val: 493.634
      }
    }
  }
  attr {
    key: "variance"
    value {
      tensor {
        dtype: DT_FLOAT
        tensor_shape {
          dim {
            size: 4
          }
        }
        float_val: 0.1
        float_val: 0.1
        float_val: 0.2
        float_val: 0.2
      }
    }
  }
}
node {
  name: "concat_2"
  op: "ConcatV2"
  input: "PriorBox"
  input: "PriorBox_1"
  input: "PriorBox_2"
  input: "PriorBox_3"
  input: "PriorBox_4"
  input: "PriorBox_5"
  input: "concat/axis_flatten"
}
################################################################################
node {
  name: "concat_1/concat3d/shape"
  op: "Const"
  attr {
    key: "value"
    value {
      tensor {
        dtype: DT_INT32
        int_val: 0
        int_val: -1
        int_val: 91
        tensor_shape {
          dim {
            size: 3
          }
        }
      }
    }
  }
}
node {
  name: "concat_1/concat3d"
  op: "Reshape"
  input: "concat_1"
  input: "concat_1/concat3d/shape"
}
node {
  name: "concat_1_sigmoid"
  op: "Sigmoid"
  input: "concat_1/concat3d"
}
node {
  name: "concat_1_sigmoid/Flatten"
  op: "Flatten"
  input: "concat_1_sigmoid"
}
node {
  name: "detection_out"
  op: "DetectionOutput"
  input: "concat"
  input: "concat_1_sigmoid/Flatten"
  input: "concat_2"
  attr { key: "num_classes" value { i: 2 } }
  attr { key: "share_location" value { b: true } }
  attr { key: "background_label_id" value { i: 0 } }
  attr { key: "nms_threshold" value { f: 0.6 } }
  attr { key: "top_k" value { i: 100 } }
  attr { key: "code_type" value { s: "CENTER_SIZE" } }
  attr { key: "keep_top_k" value { i: 100 } }
  attr { key: "confidence_threshold" value { f: 0.01 } }
}
作者: jefferyzhang    时间: 2020-3-11 15:35
rknntoolkit里的demo就有,
examples/tensorflow里的就是ssd_mobilenet_v1,
请参考里头的input/output设置转换。





欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3