我试图从我训练过的模型中保存和加载权重。
我用来保存模型的代码是。
TensorBoard(log_dir='/output')
model.fit_generator(image_a_b_gen(batch_size), steps_per_epoch=1, epochs=1)
model.save_weights('model.hdf5')
model.save_weights('myModel.h5')
让我知道这是否是错误的方法,或者是否有更好的方法。
但是当我尝试加载它们时,使用这个,
from keras.models import load_model
model = load_model('myModel.h5')
但我收到此错误:
ValueError Traceback (most recent call
last)
<ipython-input-7-27d58dc8bb48> in <module>()
1 from keras.models import load_model
----> 2 model = load_model('myModel.h5')
/home/decentmakeover2/anaconda3/lib/python3.5/site-
packages/keras/models.py in load_model(filepath, custom_objects, compile)
235 model_config = f.attrs.get('model_config')
236 if model_config is None:
--> 237 raise ValueError('No model found in config file.')
238 model_config = json.loads(model_config.decode('utf-8'))
239 model = model_from_config(model_config,
custom_objects=custom_objects)
ValueError: No model found in config file.
关于我可能做错了什么有什么建议吗?
先感谢您。
这是一个 YouTube 视频,它准确地解释了您想要执行的操作:保存并加载 Keras 模型 https://youtu.be/7n1SpeudvAE
Keras 提供了三种不同的保存方法。这些内容在上面和下面的视频链接中进行了描述(带有示例)。
首先,您收到错误的原因是您正在调用load_model
错误地。
要保存和加载模型的权重,您首先需要使用
model.save_weights('my_model_weights.h5')
保存权重,如您所显示的。要加载权重,您首先需要构建模型,然后调用load_weights
在模型上,如
model.load_weights('my_model_weights.h5')
另一种节省技术是model.save(filepath)
. This save
函数保存:
- 模型的架构,允许重新创建模型。
- 模型的权重。
- 训练配置(损失、优化器)。
- 优化器的状态,允许从您上次中断的地方恢复训练。
要加载此保存的模型,您可以使用以下命令:
from keras.models import load_model
new_model = load_model(filepath)'
Lastly, model.to_json()
,仅保存模型的架构。要加载架构,您可以使用
from keras.models import model_from_json
model = model_from_json(json_string)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)