To dump TensorFlow model out of https://github.com/mystic123/tensorflow-yolo-v3 GitHub repository (commit ed60b90), follow the instructions below:
git clone https://github.com/mystic123/tensorflow-yolo-v3.git
cd tensorflow-yolo-v3
git checkout ed60b90
python3 convert_weights_pb.py --class_names coco.names --data_format NHWC --weights_file yolov3.weights
python3 convert_weights_pb.py --class_names coco.names --data_format NHWC --weights_file yolov3-tiny.weights --tiny
If you have YOLOv3 weights trained for an input image with the size different from 416 (320, 608 or your own), please provide the --size
key with the size of your image specified while running the converter. For example, run the following command for an image with size 608:
python3 convert_weights_pb.py --class_names coco.names --data_format NHWC --weights_file yolov3_608.weights --size 608
To solve the problems explained in the YOLOv3 architecture overview section, use the yolo_v3.json
or yolo_v3_tiny.json
(depending on a model) configuration file with custom operations located in the <OPENVINO_INSTALL_DIR>/deployment_tools/model_optimizer/extensions/front/tf repository.
It consists of several attributes:
[
{
"id": "TFYOLOV3",
"match_kind": "general",
"custom_attributes": {
"classes": 80,
"anchors": [10, 13, 16, 30, 33, 23, 30, 61, 62, 45, 59, 119, 116, 90, 156, 198, 373, 326],
"coords": 4,
"num": 9,
"masks":[[6, 7, 8], [3, 4, 5], [0, 1, 2]],
"entry_points": ["detector/yolo-v3/Reshape", "detector/yolo-v3/Reshape_4", "detector/yolo-v3/Reshape_8"]
}
}
]
where:
id
and match_kind
are parameters that you cannot change.custom_attributes
is a parameter that stores all the YOLOv3 specific attributes:classes
, coords
, num
, and masks
are attributes that you should copy from the configuration file file that was used for model training. If you used DarkNet officially shared weights, you can use yolov3.cfg
or yolov3-tiny.cfg
configuration file from https://github.com/pjreddie/darknet/tree/master/cfg. Replace the default values in custom_attributes
with the parameters that follow the [yolo]
titles in the configuration file.anchors
is an optional parameter that is not used while inference of the model, but it used in a demo to parse Region
layer outputentry_points
is a node name list to cut off the model and append the Region layer with custom attributes specified above.To generate the IR of the YOLOv3 TensorFlow model, run:
python3 mo_tf.py
--input_model /path/to/yolo_v3.pb
--tensorflow_use_custom_operations_config $MO_ROOT/extensions/front/tf/yolo_v3.json
--batch 1
To generate the IR of the YOLOv3-tiny TensorFlow model, run:
python3 mo_tf.py
--input_model /path/to/yolo_v3_tiny.pb
--tensorflow_use_custom_operations_config $MO_ROOT/extensions/front/tf/yolo_v3_tiny.json
--batch 1
where:
--batch defines shape of model input. In the example, --batch is equal to 1, but you can also specify other integers larger than 1.
--tensorflow_use_custom_operations_config adds missing Region layers to the model. In the IR, the Region layer has name RegionYolo.
将自有数据集下yolov训练结果(*.weights) 在进行部署
原文:https://www.cnblogs.com/jsxyhelu/p/12378611.html