Skip to content
This repository has been archived by the owner on Mar 2, 2022. It is now read-only.

Reference repository

Katsuya Hyodo edited this page Mar 3, 2019 · 28 revisions

Conversion failed

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. 

Conversion success (1)

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)

Conversion success (2)

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. 

10
Edit "frozen_yolov3-tiny.xml" manually

  • negative_slope="0.10000000149011612" to negative_slope="0.11"
    • Other than just before the Convolution layer of kernel = "1,1"
    • Other than just before the Resample layer
<?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>