模型的保存
保存的结果: 包含 网络 的架构,优化器的状态,权重,网络的各种参数,
这样的话,以后我们 load 之后,可以继续 trainning
代码
如何保存 一个 完整model
model.save(filePath)
如果没有 models 这个目录,那么,会自动创建这个 目录
方便你 cv :
import os.path
if os.path.isfile('models/c10cnn_model.h5') is False:
model.save('models/c10cnn_model.h5')
如何 载入 一个 完整model
就是如下的代码了:
查看 weights
查看 优化器
如果我们仅仅想保存网络的架构呢?
不保存 权重等其他参数。
你想 重新 训练
用 model.to_json()
也可: model.to_yaml()
读取 json 的网络 模型
model_from_json(json_string)
如果我们只想保存网络的权重呢?
这里的情况 是,我们现在更新 了 新的 网络结构,但是想使用 旧网络的权重;
首先用 model.save_weights()
来保存之前 网络 的 weights
然后创建一个 新网络,对 新网络 使用 load_weights()
(注意,这里的 model2 其实 和 model 是相同的架构,都是2层;我的意思是,你不能让model 2 是 5层的,这样的话,你是不能 load weights 的)