yolov3模型轉換為OM模型


1.下載安裝依賴:https://github.com/wizyoung/YOLOv3_TensorFlow
2.將yolov3.weights放到~/test/YOLOv3_TensorFlow-master/data/darknet_weights文件夾中,voc_names.txt里寫入訓練的類別
3.修改test/YOLOv3_TensorFlow-master中convert_weight.py里的類別個數,運行python3 convert_weight.py
4.~/test/YOLOv3_TensorFlow-master/data/darknet_weights中生成的3個ckpt后運行python3 toPb.py生成 yolov3.pb模型,
5.拷貝aipp_yolov3_picture.cfg文件到.pb文件同一文件夾下,運行命令 omg --model ./yolov3.pb --framework 3 --output ./yolov3_facemask --insert_op_conf ./aipp_yolov3_picture.cfg --input_shape "Placeholder:1,416,416,3",生成OM文件

 

toPb.py:

import tensorflow as tf
from tensorflow.python.framework import graph_util
from tensorflow.python.platform import gfile

def freeze_graph(input_path,output_path):
output_node_names="yolov3/yolov3_head/feature_map_1,yolov3/yolov3_head/feature_map_2,yolov3/yolov3_head/feature_map_3"
saver=tf.train.import_meta_graph(input_path+".meta",clear_devices=True)
graph=tf.get_default_graph()
input_graph_def=graph.as_graph_def()

with tf.Session() as sess:
saver.restore(sess,input_path)
output_graph_def=graph_util.convert_variables_to_constants(
sess=sess,
input_graph_def=input_graph_def,
output_node_names=output_node_names.split(",")
)

with tf.gfile.GFile(output_path,'wb') as fgraph:
fgraph.write(output_graph_def.SerializeToString())

if __name__ == '__main__':
input_path ="./yolov3.ckpt"
output_path="./yolov3/yolov3.pb"
freeze_graph(input_path,output_path)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM