This repository has been archived by the owner on Mar 2, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 165
Reference repository
Katsuya Hyodo edited this page Mar 3, 2019
·
28 revisions
https://github.com/khanh1412/tiny-yolo-tensorflow.git
Preprocessing
sudo -H pip3 install sh
./scripts/get_coco.sh
create_graph.py
height = 416
width = 416
anchor1 = ((344,319), (135,169), (81,82))
anchor2 = ((37,58), (23,27), (10,14))
classes = 80
batch_size = 1
image_depth = 3
datahandler.py
images_path = os.path.join(data_path, "images/train2014")
labels_path = os.path.join(data_path, "labels")
make create
make train
Execute slimpb.py
$ python3 slimpb.py
Execute freeze_graph
$ python3 freeze_graph.py \
--input_graph=train_graph/tiny-yolo-final.ckpt.pbtxt \
--input_checkpoint=train_graph/tiny-yolo-final.ckpt \
--output_graph=train_graph/tiny-yolo-final.pb \
--output_node_names=YOLO/output1,YOLO/output2 \
--input_binary=False
Result of summarize_graph
xxxx@ubuntu:~/git/tensorflow$ bazel-bin/tensorflow/tools/graph_transforms/summarize_graph \
--in_graph=/home/b920405/git/tiny-yolo-tensorflow/train_graph/tiny-yolo-final.pb
Found 1 possible inputs: (name=YOLO/input, type=float(1), shape=[1,416,416,3])
No variables spotted.
Found 2 possible outputs: (name=YOLO/output1, op=Identity) (name=YOLO/output2, op=Identity)
Found 8854556 (8.85M) const parameters, 0 (0) variable parameters, and 0 control_edges
Op types used: 209 Const, 63 Identity, 54 Mul, 40 Add, 30 StridedSlice, 24 Sigmoid, \
22 Mean, 14 RealDiv, 13 Sub, 13 Conv2D, 11 Maximum, 11 Rsqrt, 11 SquaredDifference, \
11 StopGradient, 6 MaxPool, 6 Exp, 3 ConcatV2, 2 Floor, 2 RandomUniform, 2 Split, \
1 Fill, 1 Placeholder, 1 Conv2DBackpropInput
To use with tensorflow/tools/benchmark:benchmark_model try these arguments:
bazel run tensorflow/tools/benchmark:benchmark_model -- \
--graph=~/git/tiny-yolo-tensorflow/train_graph/tiny-yolo-final.pb \
--show_flops \
--input_layer=YOLO/input \
--input_layer_type=float \
--input_layer_shape=1,416,416,3 \
--output_layer=YOLO/output1,YOLO/output2
coversion error.
[ ERROR ] List of operations that cannot be converted to IE IR:
[ ERROR ] Exp (6)
[ ERROR ] YOLO/Exp
[ ERROR ] YOLO/Exp_1
[ ERROR ] YOLO/Exp_2
[ ERROR ] YOLO/Exp_3
[ ERROR ] YOLO/Exp_4
[ ERROR ] YOLO/Exp_5
[ ERROR ] Floor (2)
[ ERROR ] YOLO/conv_14/drop/Floor
[ ERROR ] YOLO/conv_18/drop/Floor
[ ERROR ] RandomUniform (2)
[ ERROR ] YOLO/conv_14/drop/random_uniform/RandomUniform
[ ERROR ] YOLO/conv_18/drop/random_uniform/RandomUniform
[ ERROR ] Part of the nodes was not translated to IE. Stopped.
https://qiita.com/yoyoyo_/items/10d550b03b4b9c175d9c
https://github.com/qqwweee/keras-yolo3.git
$ git clone https://github.com/qqwweee/keras-yolo3.git
$ cd keras-yolo3
$ wget https://pjreddie.com/media/files/yolov3.weights
$ wget https://pjreddie.com/media/files/yolov3-tiny.weights
$ python3 convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
$ python3 convert.py yolov3-tiny.cfg yolov3-tiny.weights model_data/yolo-tiny.h5
$ python3 keras2tensorflow/keras_to_tensorflow.py \
--input_model="model_data/yolo.h5" \
--output_model="model_data/yolo.pb"
$ python3 keras2tensorflow/keras_to_tensorflow.py \
--input_model="model_data/yolo-tiny.h5" \
--output_model="model_data/yolo-tiny.pb"
$ cd ~/git/tensorflow
bazel-bin/tensorflow/tools/graph_transforms/summarize_graph --in_graph=/home/b920405/git/keras-yolo3/model_data/yolo-tiny.pb
$ bazel-bin/tensorflow/tools/graph_transforms/summarize_graph --in_graph=/home/b920405/git/keras-yolo3/model_data/yolo-tiny.pb
Found 1 possible inputs: (name=input_1, type=float(1), shape=[?,?,?,3])
No variables spotted.
Found 2 possible outputs: (name=conv2d_10/BiasAdd, op=BiasAdd) (name=conv2d_13/BiasAdd, op=BiasAdd)
Found 8858751 (8.86M) const parameters, 0 (0) variable parameters, and 0 control_edges
Op types used: 75 Const, 59 Identity, 13 Conv2D, 12 Mul, 11 FusedBatchNorm, 11 Maximum, \
6 MaxPool, 2 BiasAdd, 1 ConcatV2, 1 Placeholder, 1 ResizeNearestNeighbor, 1 Shape, 1 StridedSlice
To use with tensorflow/tools/benchmark:benchmark_model try these arguments:
bazel run tensorflow/tools/benchmark:benchmark_model -- \
--graph=/home/b920405/git/keras-yolo3/model_data/yolo-tiny.pb \
--show_flops --input_layer=input_1 \
--input_layer_type=float \
--input_layer_shape=-1,-1,-1,3 \
--output_layer=conv2d_10/BiasAdd,conv2d_13/BiasAdd
$ sudo python3 /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/mo_tf.py \
--input_model model_data/yolo-tiny.pb \
--output_dir irmodels/tiny-YoloV3/FP16 \
--data_type FP16 \
--input_shape [1,416,416,3]
Model Optimizer arguments:
Common parameters:
- Path to the Input Model: /home/b920405/git/keras-yolo3/model_data/yolo-tiny.pb
- Path for generated IR: /home/b920405/git/keras-yolo3/irmodels/tiny-YoloV3/FP16
- IR output name: yolo-tiny
- Log level: ERROR
- Batch: Not specified, inherited from the model
- Input layers: Not specified, inherited from the model
- Output layers: Not specified, inherited from the model
- Input shapes: [1,416,416,3]
- Mean values: Not specified
- Scale values: Not specified
- Scale factor: Not specified
- Precision of IR: FP16
- Enable fusing: True
- Enable grouped convolutions fusing: True
- Move mean values to preprocess section: False
- Reverse input channels: False
TensorFlow specific parameters:
- Input model in text protobuf format: False
- Offload unsupported operations: False
- Path to model dump for TensorBoard: None
- List of shared libraries with TensorFlow custom layers implementation: None
- Update the configuration file with input/output node names: None
- Use configuration file used to generate the model with Object Detection API: None
- Operations to offload: None
- Patterns to offload: None
- Use the config file: None
Model Optimizer version: 1.5.12.49d067a0
/usr/local/lib/python3.5/dist-packages/h5py/__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
[ SUCCESS ] Generated IR model.
[ SUCCESS ] XML file: /home/b920405/git/keras-yolo3/irmodels/tiny-YoloV3/FP16/yolo-tiny.xml
[ SUCCESS ] BIN file: /home/b920405/git/keras-yolo3/irmodels/tiny-YoloV3/FP16/yolo-tiny.bin
[ SUCCESS ] Total execution time: 4.44 seconds.
##
## python3 openvino_modelload_test.py
##
import sys
import cv2
import numpy as np
from openvino.inference_engine import IENetwork, IEPlugin
model_xml="irmodels/tiny-YoloV3/FP16/yolo-tiny.xml"
model_bin="irmodels/tiny-YoloV3/FP16/yolo-tiny.bin"
net = IENetwork(model=model_xml, weights=model_bin)
plugin = IEPlugin(device="MYRIAD")
exec_net = plugin.load(network=net)
input_blob = next(iter(net.inputs))
#out_blob = next(iter(net.outputs))
print(input_blob)
print(net.outputs)
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FPS, 30)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)
ret, image = cap.read()
m_input_size = 416
prepimg = cv2.resize(image, (m_input_size, m_input_size))
prepimg = prepimg[np.newaxis, :, :, :] # Batch size axis add
prepimg = prepimg.transpose((0, 3, 1, 2)) # NHWC to NCHW
outputs = exec_net.infer(inputs={input_blob: prepimg})
objects = []
for output in outputs.values():
print(output.shape)
$ python3 openvino_modelload_test.py
input_1
{'conv2d_13/convolution': <openvino.inference_engine.ie_api.OutputInfo object at 0x7f958e470198>, 'conv2d_10/convolution': <openvino.inference_engine.ie_api.OutputInfo object at 0x7f958e470120>}
(1, 255, 26, 26)
(1, 255, 13, 13)
https://github.com/jinyu121/DW2TF.git
$ cd ~/DW2TF/data
$ python3 freeze_graph.py \
--input_graph=yolov3-tiny.pb \
--input_checkpoint=yolov3-tiny.ckpt \
--output_graph=frozen_yolov3-tiny.pb \
--output_node_names=yolov3-tiny/convolutional10/BiasAdd,yolov3-tiny/convolutional13/BiasAdd \
--input_binary=True
$ cd ~/DW2TF
$ sudo python3 /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/mo_tf.py \
--input_model data/frozen_yolov3-tiny.pb \
--output_dir irmodels/YoloV3/FP16 \
--data_type FP16 \
--batch 1 \
--input yolov3-tiny/net1 \
--output yolov3-tiny/convolutional10/BiasAdd,yolov3-tiny/convolutional13/BiasAdd
Model Optimizer arguments:
Common parameters:
- Path to the Input Model: /home/b920405/git/DW2TF/data/frozen_yolov3-tiny.pb
- Path for generated IR: /home/b920405/git/DW2TF/irmodels/YoloV3/FP16
- IR output name: frozen_yolov3-tiny
- Log level: ERROR
- Batch: 1
- Input layers: yolov3-tiny/net1
- Output layers: yolov3-tiny/convolutional10/BiasAdd,yolov3-tiny/convolutional13/BiasAdd
- Input shapes: Not specified, inherited from the model
- Mean values: Not specified
- Scale values: Not specified
- Scale factor: Not specified
- Precision of IR: FP16
- Enable fusing: True
- Enable grouped convolutions fusing: True
- Move mean values to preprocess section: False
- Reverse input channels: False
TensorFlow specific parameters:
- Input model in text protobuf format: False
- Offload unsupported operations: False
- Path to model dump for TensorBoard: None
- List of shared libraries with TensorFlow custom layers implementation: None
- Update the configuration file with input/output node names: None
- Use configuration file used to generate the model with Object Detection API: None
- Operations to offload: None
- Patterns to offload: None
- Use the config file: None
Model Optimizer version: 1.5.12.49d067a0
/usr/local/lib/python3.5/dist-packages/h5py/__init__.py:34: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
/opt/intel/computer_vision_sdk_2018.5.455/deployment_tools/model_optimizer/mo/middle/passes/fusing/decomposition.py:65: RuntimeWarning: invalid value encountered in sqrt
scale = 1. / np.sqrt(variance.value + eps)
[ SUCCESS ] Generated IR model.
[ SUCCESS ] XML file: /home/b920405/git/DW2TF/irmodels/YoloV3/FP16/frozen_yolov3-tiny.xml
[ SUCCESS ] BIN file: /home/b920405/git/DW2TF/irmodels/YoloV3/FP16/frozen_yolov3-tiny.bin
[ SUCCESS ] Total execution time: 3.70 seconds.
Edit "frozen_yolov3-tiny.xml" manually
-
negative_slope="0.10000000149011612"
tonegative_slope="0.11"
- Other than just before the
Convolution
layer ofkernel = "1,1"
- Other than just before the Resample layer
- Other than just before the
<?xml version="1.0" ?>
<net batch="1" name="frozen_yolov3-tiny" version="4">
<layers>
<layer id="0" name="yolov3-tiny/net1" precision="FP16" type="Input">
<output>
<port id="0">
<dim>1</dim>
<dim>3</dim>
<dim>416</dim>
<dim>416</dim>
</port>
</output>
</layer>
<layer id="1" name="yolov3-tiny/convolutional1/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="16" pads_begin="1,1" pads_end="1,1" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>3</dim>
<dim>416</dim>
<dim>416</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>16</dim>
<dim>416</dim>
<dim>416</dim>
</port>
</output>
<blobs>
<weights offset="0" size="864"/>
<biases offset="864" size="32"/>
</blobs>
</layer>
<layer id="2" name="LeakyReLU_553" precision="FP16" type="ReLU">
<data negative_slope="0.11"/>
<input>
<port id="0">
<dim>1</dim>
<dim>16</dim>
<dim>416</dim>
<dim>416</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>16</dim>
<dim>416</dim>
<dim>416</dim>
</port>
</output>
</layer>
<layer id="3" name="yolov3-tiny/maxpool1/MaxPool" precision="FP16" type="Pooling">
<data auto_pad="same_upper" exclude-pad="true" kernel="2,2" pads_begin="0,0" pads_end="0,0" pool-method="max" strides="2,2"/>
<input>
<port id="0">
<dim>1</dim>
<dim>16</dim>
<dim>416</dim>
<dim>416</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>16</dim>
<dim>208</dim>
<dim>208</dim>
</port>
</output>
</layer>
<layer id="4" name="yolov3-tiny/convolutional2/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="32" pads_begin="1,1" pads_end="1,1" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>16</dim>
<dim>208</dim>
<dim>208</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>32</dim>
<dim>208</dim>
<dim>208</dim>
</port>
</output>
<blobs>
<weights offset="896" size="9216"/>
<biases offset="10112" size="64"/>
</blobs>
</layer>
<layer id="5" name="LeakyReLU_557" precision="FP16" type="ReLU">
<data negative_slope="0.11"/>
<input>
<port id="0">
<dim>1</dim>
<dim>32</dim>
<dim>208</dim>
<dim>208</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>32</dim>
<dim>208</dim>
<dim>208</dim>
</port>
</output>
</layer>
<layer id="6" name="yolov3-tiny/maxpool2/MaxPool" precision="FP16" type="Pooling">
<data auto_pad="same_upper" exclude-pad="true" kernel="2,2" pads_begin="0,0" pads_end="0,0" pool-method="max" strides="2,2"/>
<input>
<port id="0">
<dim>1</dim>
<dim>32</dim>
<dim>208</dim>
<dim>208</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>32</dim>
<dim>104</dim>
<dim>104</dim>
</port>
</output>
</layer>
<layer id="7" name="yolov3-tiny/convolutional3/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="64" pads_begin="1,1" pads_end="1,1" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>32</dim>
<dim>104</dim>
<dim>104</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>64</dim>
<dim>104</dim>
<dim>104</dim>
</port>
</output>
<blobs>
<weights offset="10176" size="36864"/>
<biases offset="47040" size="128"/>
</blobs>
</layer>
<layer id="8" name="LeakyReLU_558" precision="FP16" type="ReLU">
<data negative_slope="0.11"/>
<input>
<port id="0">
<dim>1</dim>
<dim>64</dim>
<dim>104</dim>
<dim>104</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>64</dim>
<dim>104</dim>
<dim>104</dim>
</port>
</output>
</layer>
<layer id="9" name="yolov3-tiny/maxpool3/MaxPool" precision="FP16" type="Pooling">
<data auto_pad="same_upper" exclude-pad="true" kernel="2,2" pads_begin="0,0" pads_end="0,0" pool-method="max" strides="2,2"/>
<input>
<port id="0">
<dim>1</dim>
<dim>64</dim>
<dim>104</dim>
<dim>104</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>64</dim>
<dim>52</dim>
<dim>52</dim>
</port>
</output>
</layer>
<layer id="10" name="yolov3-tiny/convolutional4/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="128" pads_begin="1,1" pads_end="1,1" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>64</dim>
<dim>52</dim>
<dim>52</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>128</dim>
<dim>52</dim>
<dim>52</dim>
</port>
</output>
<blobs>
<weights offset="47168" size="147456"/>
<biases offset="194624" size="256"/>
</blobs>
</layer>
<layer id="11" name="LeakyReLU_" precision="FP16" type="ReLU">
<data negative_slope="0.11"/>
<input>
<port id="0">
<dim>1</dim>
<dim>128</dim>
<dim>52</dim>
<dim>52</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>128</dim>
<dim>52</dim>
<dim>52</dim>
</port>
</output>
</layer>
<layer id="12" name="yolov3-tiny/maxpool4/MaxPool" precision="FP16" type="Pooling">
<data auto_pad="same_upper" exclude-pad="true" kernel="2,2" pads_begin="0,0" pads_end="0,0" pool-method="max" strides="2,2"/>
<input>
<port id="0">
<dim>1</dim>
<dim>128</dim>
<dim>52</dim>
<dim>52</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>128</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</output>
</layer>
<layer id="13" name="yolov3-tiny/convolutional5/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="256" pads_begin="1,1" pads_end="1,1" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>128</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</output>
<blobs>
<weights offset="194880" size="589824"/>
<biases offset="784704" size="512"/>
</blobs>
</layer>
<layer id="14" name="LeakyReLU_555" precision="FP16" type="ReLU">
<data negative_slope="0.11"/>
<input>
<port id="0">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</output>
</layer>
<layer id="15" name="yolov3-tiny/maxpool5/MaxPool" precision="FP16" type="Pooling">
<data auto_pad="same_upper" exclude-pad="true" kernel="2,2" pads_begin="0,0" pads_end="0,0" pool-method="max" strides="2,2"/>
<input>
<port id="0">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>256</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
</layer>
<layer id="16" name="yolov3-tiny/convolutional6/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="512" pads_begin="1,1" pads_end="1,1" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>256</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
<blobs>
<weights offset="785216" size="2359296"/>
<biases offset="3144512" size="1024"/>
</blobs>
</layer>
<layer id="17" name="LeakyReLU_552" precision="FP16" type="ReLU">
<data negative_slope="0.11"/>
<input>
<port id="0">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
</layer>
<layer id="18" name="yolov3-tiny/maxpool6/MaxPool" precision="FP16" type="Pooling">
<data auto_pad="same_upper" exclude-pad="true" kernel="2,2" pads_begin="0,0" pads_end="1,1" pool-method="max" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
</layer>
<layer id="19" name="yolov3-tiny/convolutional7/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="1024" pads_begin="1,1" pads_end="1,1" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>1024</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
<blobs>
<weights offset="3145536" size="9437184"/>
<biases offset="12582720" size="2048"/>
</blobs>
</layer>
<layer id="20" name="LeakyReLU_551" precision="FP16" type="ReLU">
<data negative_slope="0.10000000149011612"/>
<input>
<port id="0">
<dim>1</dim>
<dim>1024</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>1024</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
</layer>
<layer id="21" name="yolov3-tiny/convolutional8/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="1,1" output="256" pads_begin="0,0" pads_end="0,0" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>1024</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>256</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
<blobs>
<weights offset="12584768" size="524288"/>
<biases offset="13109056" size="512"/>
</blobs>
</layer>
<layer id="22" name="LeakyReLU_556" precision="FP16" type="ReLU">
<data negative_slope="0.11"/>
<input>
<port id="0">
<dim>1</dim>
<dim>256</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>256</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
</layer>
<layer id="23" name="yolov3-tiny/convolutional9/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="512" pads_begin="1,1" pads_end="1,1" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>256</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
<blobs>
<weights offset="13109568" size="2359296"/>
<biases offset="15468864" size="1024"/>
</blobs>
</layer>
<layer id="24" name="LeakyReLU_550" precision="FP16" type="ReLU">
<data negative_slope="0.10000000149011612"/>
<input>
<port id="0">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
</layer>
<layer id="25" name="yolov3-tiny/convolutional10/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="1,1" output="255" pads_begin="0,0" pads_end="0,0" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>512</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>255</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
<blobs>
<weights offset="15469888" size="261120"/>
<biases offset="15731008" size="510"/>
</blobs>
</layer>
<layer id="26" name="yolov3-tiny/convolutional11/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="1,1" output="128" pads_begin="0,0" pads_end="0,0" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>256</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>128</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
<blobs>
<weights offset="15731518" size="65536"/>
<biases offset="15797054" size="256"/>
</blobs>
</layer>
<layer id="27" name="LeakyReLU_549" precision="FP16" type="ReLU">
<data negative_slope="0.10000000149011612"/>
<input>
<port id="0">
<dim>1</dim>
<dim>128</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>128</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</output>
</layer>
<layer id="28" name="yolov3-tiny/upsample1" precision="FP16" type="Resample">
<data antialias="0" factor="2.0" type="caffe.ResampleParameter.NEAREST"/>
<input>
<port id="0">
<dim>1</dim>
<dim>128</dim>
<dim>13</dim>
<dim>13</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>128</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</output>
</layer>
<layer id="29" name="yolov3-tiny/route2" precision="FP16" type="Concat">
<data axis="1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>128</dim>
<dim>26</dim>
<dim>26</dim>
</port>
<port id="1">
<dim>1</dim>
<dim>128</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</input>
<output>
<port id="2">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</output>
</layer>
<layer id="30" name="yolov3-tiny/convolutional12/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="3,3" output="256" pads_begin="1,1" pads_end="1,1" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</output>
<blobs>
<weights offset="15797310" size="1179648"/>
<biases offset="16976958" size="512"/>
</blobs>
</layer>
<layer id="31" name="LeakyReLU_554" precision="FP16" type="ReLU">
<data negative_slope="0.10000000149011612"/>
<input>
<port id="0">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</input>
<output>
<port id="1">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</output>
</layer>
<layer id="32" name="yolov3-tiny/convolutional13/Conv2D" precision="FP16" type="Convolution">
<data auto_pad="same_upper" dilations="1,1" group="1" kernel="1,1" output="255" pads_begin="0,0" pads_end="0,0" strides="1,1"/>
<input>
<port id="0">
<dim>1</dim>
<dim>256</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</input>
<output>
<port id="3">
<dim>1</dim>
<dim>255</dim>
<dim>26</dim>
<dim>26</dim>
</port>
</output>
<blobs>
<weights offset="16977470" size="130560"/>
<biases offset="17108030" size="510"/>
</blobs>
</layer>
</layers>
<edges>
<edge from-layer="0" from-port="0" to-layer="1" to-port="0"/>
<edge from-layer="1" from-port="3" to-layer="2" to-port="0"/>
<edge from-layer="2" from-port="1" to-layer="3" to-port="0"/>
<edge from-layer="3" from-port="1" to-layer="4" to-port="0"/>
<edge from-layer="4" from-port="3" to-layer="5" to-port="0"/>
<edge from-layer="5" from-port="1" to-layer="6" to-port="0"/>
<edge from-layer="6" from-port="1" to-layer="7" to-port="0"/>
<edge from-layer="7" from-port="3" to-layer="8" to-port="0"/>
<edge from-layer="8" from-port="1" to-layer="9" to-port="0"/>
<edge from-layer="9" from-port="1" to-layer="10" to-port="0"/>
<edge from-layer="10" from-port="3" to-layer="11" to-port="0"/>
<edge from-layer="11" from-port="1" to-layer="12" to-port="0"/>
<edge from-layer="12" from-port="1" to-layer="13" to-port="0"/>
<edge from-layer="13" from-port="3" to-layer="14" to-port="0"/>
<edge from-layer="14" from-port="1" to-layer="15" to-port="0"/>
<edge from-layer="15" from-port="1" to-layer="16" to-port="0"/>
<edge from-layer="16" from-port="3" to-layer="17" to-port="0"/>
<edge from-layer="17" from-port="1" to-layer="18" to-port="0"/>
<edge from-layer="18" from-port="1" to-layer="19" to-port="0"/>
<edge from-layer="19" from-port="3" to-layer="20" to-port="0"/>
<edge from-layer="20" from-port="1" to-layer="21" to-port="0"/>
<edge from-layer="21" from-port="3" to-layer="22" to-port="0"/>
<edge from-layer="22" from-port="1" to-layer="23" to-port="0"/>
<edge from-layer="23" from-port="3" to-layer="24" to-port="0"/>
<edge from-layer="24" from-port="1" to-layer="25" to-port="0"/>
<edge from-layer="22" from-port="1" to-layer="26" to-port="0"/>
<edge from-layer="26" from-port="3" to-layer="27" to-port="0"/>
<edge from-layer="27" from-port="1" to-layer="28" to-port="0"/>
<edge from-layer="28" from-port="1" to-layer="29" to-port="0"/>
<edge from-layer="12" from-port="1" to-layer="29" to-port="1"/>
<edge from-layer="29" from-port="2" to-layer="30" to-port="0"/>
<edge from-layer="30" from-port="3" to-layer="31" to-port="0"/>
<edge from-layer="31" from-port="1" to-layer="32" to-port="0"/>
</edges>
<meta_data>
<MO_version value="1.5.12.49d067a0"/>
<cli_parameters>
<batch value="1"/>
<data_type value="FP16"/>
<disable_fusing value="False"/>
<disable_gfusing value="False"/>
<disable_nhwc_to_nchw value="False"/>
<disable_resnet_optimization value="False"/>
<extensions value="DIR"/>
<framework value="tf"/>
<generate_deprecated_IR_V2 value="False"/>
<input value="yolov3-tiny/net1"/>
<input_model value="DIR/frozen_yolov3-tiny.pb"/>
<input_model_is_text value="False"/>
<log_level value="ERROR"/>
<mean_values value="()"/>
<move_to_preprocess value="False"/>
<offload_unsupported_operations_to_tf value="False"/>
<output value="yolov3-tiny/convolutional10/BiasAdd,yolov3-tiny/convolutional13/BiasAdd"/>
<output_dir value="DIR"/>
<reverse_input_channels value="False"/>
<scale_values value="()"/>
<silent value="False"/>
<version value="False"/>
<unset unset_cli_parameters="finegrain_fusing, freeze_placeholder_with_value, input_checkpoint, input_meta_graph, input_shape, model_name, saved_model_dir, saved_model_tags, scale, tensorboard_logdir, tensorflow_custom_layer_libraries, tensorflow_custom_operations_config_update, tensorflow_object_detection_api_pipeline_config, tensorflow_operation_patterns, tensorflow_subgraph_patterns, tensorflow_use_custom_operations_config"/>
</cli_parameters>
</meta_data>
</net>