【人工智能】深度学习框架值TF入门-模型保存与加载

发布时间 2023-08-20 21:08:17作者: 萌狼蓝天

资料:https://tensorflow.google.cn/tutorials/keras/save_and_load#选项

Keras的方式

Keras版本模型保存与加载

函数

保存模型权重:model.save_weights
保存HDF5文件:model.save
保存pb文件:tf.saved_model

tf.saved_modelmodel.save的区别在于,tf.saved_model格式的模型可以直接用来预测,但是tf.saved_model没有保存优化器配置,而model.save保存了优化器配置,所以整体更大。

保存模型权重方法仅仅保存了模型中的权重,而保存模型文件的model.save可以将模型和优化器一起保存,包括权重(weights)、模型配置(architecture)和优化器配置(optimizer configuration)。这样做的好处是,当你恢复模型时,完全不依赖于原来搭建模型的代码。

保存完整的模型有很多应用场景,比如在浏览器中使用TensorFlow.js加载运行,比如在移动设备上使用TensorFlow Lite加载运行。

使用

保存为pd格式

保存:model.save("要保存的目录名称")

读取:model = tf.keras.models.load_model('保存模型的目录名称')

保存为hdf5格式

同上,只是写的不再是目录名称,而是'xxx.h5'

注意:

如果发生报错:model_config = json.loads(model_config.decode('utf-8'))

原因:tensorflow2.1.0支持h5py<3.0.0 而在安装tensorflow会自动安装h5py 3.1.0 。

旧版本的方式(v1.x)

我没安装这个版本的tensorflow,没有经过测试

函数

函数:tf.train.Saver(var_list=none,max_to_keep=5)

  • 保存和加载模型,文件格式:checkpoint文件(扩展名:ckpt)
  • var_list:指定要保存和还原的变量,可以作为一个dict或一个列表传递
  • max_to_keep:指示要保留的最近检查点文件的最大数量。创建新文件时,会删除较旧的文件,如果无或者0,则保留所有检查点文件。默认为5(保留最新的5个检查点文件)

使用方法

旧版本使用办法)(1.x)

saver = tf.train.Saver()
saver.save(Model,"./路径/文件名.ckpt")
saver.restore(Model,"./路径/文件名.ckpt")