【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'])

浙公网安备 33010602011771号