tensorflow模型的加载及保存,以及在C++端的部署

本文详细介绍了如何在TensorFlow2.0中保存和加载模型,包括模型权重、完整模型的.h5、checkpoint、pb格式。特别强调了在C++端部署时,需要将模型转换为静态图模式的pb文件。同时,文中提到了模型部署的两种方法,即使用tf.saved_model接口保存的模型和冻结模型以供C++调用。
摘要由CSDN通过智能技术生成

一、模型保存和加载

参考文章:TensorFlow2.0 —— 模型保存与加载

方法一、 仅保存模型权重(model.save_weights)

  • 有两种保存模型权重的方法,一种是保存.h5形式。
model.save_weights("adasd.h5") # 模型权重保存
model.load_weights("adasd.h5") # 模型权重加载,需要有model
model.predict(x_test)  # 模型预测
  • 另一种是保存checkpoint形式。
model.save_weights('./checkpoints/mannul_checkpoint')
model.load_weights('./checkpoints/mannul_checkpoint')
model.predict(x_test)

方法二、保存整个模型(model.save)

  • 有两种保存模型的方法,一种是保存pb形式。
# Export the model to a SavedModel
model.save('keras_model_tf_version', save_format='tf')

# Recreate the exact same model
new_model = tf.keras.models.load_model('keras_model_tf_version')
new_model.predict(x_test)
  • 保存.h5格式。
model.save('keras_model_hdf5_version.h5')

new_model = tf.keras.models.load_model('keras_model_hdf5_version.h5')
new_model.predict(x_test)

通过方法二保存的pb模型,会有一个文件夹,里面有三个文件
在这里插入图片描述
这里需要注意,虽然也有一个pb文件,但是这个文件里面只有模型结构,没有模型参数,参数在“variables”里,而且在opencv中只能加载tf1.x中静态图模式的参数,因此需要将该保存的模型转换成静态图模式的pb文件

方法三、保存整个模型(tf.saved_model)

tf.saved_model.save(model
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dataloading...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值