Tensorflow2.0
HDF5是keras的专有模块,和SavedModel都会被转化成签名函数。Concrete Function是一个签名函数,有固定格式的输入和输出。 最终转化成Flatbuffer,服务端运行结束。Tensorflow1.0使用checkpoint和graphdef,2.0并不推荐使用
保存:参数+网络结构
TFLite——FlatBuffer
Google开源的跨平台数据序列化库
优点:直接读取序列化数据,高效的内存使用和速度,灵活兼容,使用少量代码可完成功能。
TFLite量化,参数从float变成8bit,模型大小会变原来的四分之一,将float缩放到一个区间,并取一个最接近的整数。
二 使用checkpoint保存模型和参数
三 keras模型转化为SavedModel
Notebook中使用命令行工具的需要在最开始的加一个!
# model是训练好的模型
tf.saved_model.save(model, "./keras_saved_graph")
# 在路径下,有saved_model.pb
# 命令行工具 查看model
!saved_model_cli show --dir ./keras_saved_graph --all
# 签名定义中会存储输入输出信息
!saved_model_cli show --dir ./keras