资料:https://tensorflow.google.cn/tutorials/keras/save_and_load#选项
Keras的方式
Keras版本模型保存与加载
函数
保存模型权重:model.save_weights
保存HDF5文件:model.save
保存pb文件:tf.saved_model
tf.saved_model
和model.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")