# 将自有数据集下yolov训练结果（*.weights) 在进行部署

1、由*.weights转换为*.pb

To dump TensorFlow model out of https://github.com/mystic123/tensorflow-yolo-v3 GitHub repository (commit ed60b90), follow the instructions below:

1. Clone the repository:
git clone https://github.com/mystic123/tensorflow-yolo-v3.gitcd tensorflow-yolo-v3
2. (Optional) Checkout to the commit that the conversion was tested on:
git checkout ed60b90
4. Download the yolov3.weights (for the YOLOv3 model) or yolov3-tiny.weights (for the YOLOv3-tiny model) file OR use your pretrained weights with the same structure
5. Run a converter:
• for YOLO-v3:
python3 convert_weights_pb.py --class_names coco.names --data_format NHWC --weights_file yolov3.weights
• for YOLOv3-tiny:
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

2、由*.pb转换为IR(xml+bin)

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 output
• entry_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.

1、出现：'Graph' object has no attribute 'node'

2、*.json文件作为训练参数文件，需要做较多修改。

posted @ 2020-02-28 19:13  jsxyhelu  阅读(1059)  评论(0编辑  收藏  举报