tensorflow中的模型常常是protobuf格式,这种格式既可以是二进制也可以是文本。keras模型保存和加载与tensorflow不同,keras中的模型保存和加载通常是保存成hdf5格式。
keras的模型保存分为多种情况。
一、不保存模型只显示大概结构
-
model.summary()
这个函数会打印模型结构,但是仅仅是打印到控制台。 -
keras.utils.plot_model()
使用graphviz中的dot.exe生成网络结构拓扑图
二、保存模型结构
-
keras.models.Model
-
对象的to_json,to_yaml只保存模型结构,加载时使用keras.models.model_from_json(),keras.models.model_from_yaml()
-
keras.model.get_config()返回文本形式的配置
使用keras.model.model_from_config可以加载模型。
三、保存全部结构(最常用的方法)
keras.core.saving.py这个文件十分重要,keras的模型保存、加载都需要这个文件。
但是不建议直接使用这个文件,因为keras中的Model对象和models模块会调用这个文件。
keras.core包下的内容一般供内部使用,不暴露给使用者。
Model对象提供了save()和save_wights()两个方法。
save()方法保存了三种东西:
- 模型结构
- 模型参数
- 优化器参数
其中优化器参数是给优化器用的,用于继续训练模型。有些优化器比