yolo3 pb或者各种pb模型转换tflite,并量化

#建议使用ubuntu系统,tf好像在windows缺失tflite功能
#依赖:tansoeflow-gpu>=1.14.0(我的是1.14.0)
import tensorflow as tf
#获取需要转换模型路径
path="/home/hanqing/models-master/research/object_detection/mode1/saved_model.pb"        #pb文件位置和文件名
#输入模型变量名
input_arrays=["input_1_1"]               #模型文件的输入节点名称
#输出变量名
output_arrays=["conv2d_59_1/BiasAdd","conv2d_67_1/BiasAdd","conv2d_75_1/BiasAdd"]            #模型文件的输出节点名称
#输入变量-数据的数量/图像大小/通道(保持跟训练模型时一致就好)
input_shapes={"input_1_1":[1,416,416,3]}
#从模型创建TFLiteConverter类
converter = tf.lite.TFLiteConverter.from_frozen_graph(path, input_arrays, output_arrays,input_shapes)
#将转换器的训练后是否量化设置为 true
converter.post_training_quantize=True
#允许自定义操作(之转换格式,就注释上面“converter.post_training_quantize=True”,打开“converter.allow_custom_ops=True”)
# converter.allow_custom_ops=True
#基于实例变量转换TensorFlow GraphDef(转换)
tflite_model=converter.convert()
#保存tflite地址
open("/home/hanqing/models-master/research/object_detection/mode1/yolo3_pb.tflite", "wb").write(tflite_model)

已经实测转换完成,转载请代连接,测试不易,有问题备注

你可能感兴趣的:(Tensorflow)