【AI模型优化】使用TensorFlow Lite 优化pb或h5模型

1、模型算子必须官方支持

2、速度没有详细测试 先说模型大小

h5 模型  17M      

转换成pb  8.8M   

转换成tflite  8.5M

 

优化速度基本上是(h5:pb:tflite,仅仅在我这个模型)  3:1.5:1

PB转换  tflite

1 import tensorflow as tf
2 
3 graph_def_file = '/Users/jack/Documents/DaiCode/T4/trans_model/false_positive3.pb'
4 input_arrays = ["input_1"]
5 output_arrays = ["output_1"]
6 converter = tf.lite.TFLiteConverter.from_frozen_graph(
7     graph_def_file, input_arrays, output_arrays)
8 tflite_model = converter.convert()
9 open("model/mobilenet_pb.tflite", "wb").write(tflite_model)

 

h5 转换 tflite

import tensorflow as tf

model = '/Users/jack/Documents/DaiCode/T4/false_positive3.h5'
# 转换模型。
converter = tf.lite.TFLiteConverter.from_keras_model_file(model)
tflite_model = converter.convert()
open("model/mobilenet.tflite", "wb").write(tflite_model)

 

tflite 加载方式

# 加载 TFLite 模型并分配张量(tensor)。
interpreter = tf.lite.Interpreter(model_content=tflite_model)
interpreter.allocate_tensors()
# 获取输入和输出张量。
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()

# 构造你需要的图片输入 这里省略部分代码
input_data = np.array([plate_img], dtype=np.float32)
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()

# 获取数据
tflite_results = interpreter.get_tensor(output_details[0]['index'])
 

 

posted @ 2020-05-12 14:56  nowbug  阅读(854)  评论(0)    收藏  举报