关于tensorflow模型保存几种格式

ckpt

常规模型保存,模型结构,数据,运算图分开保存。常用在训练阶段使用。

h5

keras前端保存的模型格式,有两种,纯数据和数据+网络结构,可以被tf调用。可以用软件查看内部数据,并进行修改。

pb

用于移动端端/server端都有使用,包括结构+数据,不可以修改内部,也就是为什么叫做凝固图了。可以做量化模型处理,目前只支持int8和float16两种格式量化。

pbtxt

pb的扩展格式,可以被修改内容,用记事本就可以修改。

tflite

一种实验的数据格式,也叫轻量化模型,多用于手机,平板,树莓派之类的边缘设备。可以用轻量级的`tflite_runtime`包来调用。

支持int8和float16两种格式量化。

说明  

pb和tflite都可以做模型量化,pb量化用到tensorflow-serving服务器,好像量化后,只能在linux短的tf调用,而tflite轻量化-量化用到移动端,在ios系统上调用好像要经过处理,要不会报错。

import tensorflow as tf

saved_model_dir = "./pb_model"

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir,
                                                     input_arrays=["inputs"],
                                                     input_shapes={"inputs": [1, 784]},
                                                     output_arrays=["predictions"])
converter.optimizations = ["DEFAULT"]  
converter.post_training_quantize = True  # 就这个行
tflite_model = converter.convert()
open("tflite_model_v3/eval_graph.tflite", "wb").write(tflite_model)

猜你喜欢

转载自blog.csdn.net/weixin_39875161/article/details/106191157