Keras重量

2024-04-26 13:04:53 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我正在开发基于爱丽丝梦游仙境故事生成文本的lstm。我有两个脚本,training scripttesting script。对于每个epoch,我决定创建自己的带有权重的文件,您可以看到创建的所有文件here。训练脚本工作完美,它创建所有文件,在执行过程中没有错误。当我运行我的测试脚本,它编译,但在执行过程中,给我一个错误

ValueError: You are trying to load a weight file containing 2 layers into a model with 3 layers.

我为两个网络创建了完全相同的体系结构,我找不到问题所在。 我在谷歌上搜索了一下,发现它很管用。我把keras的版本改成了2.0.2,它还可以运行,但是我怎样才能修改我的代码,使它可以在keras的最新版本上运行呢?你知道吗


Tags: 文件文本版本脚本过程layers错误training
1条回答
网友
1楼 · 发布于 2024-04-26 13:04:53

这是因为您正在以调用ModelCheckpoint的方式保存整个模型(架构+权重+等等)。根据Keras documentationModelCheckpoint接受一个名为save_weights_only的参数,默认值为False,这样:

if True, then only the model's weights will be saved (model.save_weights(filepath)), else the full model is saved (model.save(filepath)).

因此,在您的代码中,您正在保存整个模型,因为您没有设置save_weights_only=True。可以使用^{}加载模型,也可以设置save_weights_only=True并再次运行训练脚本(如果希望只保存权重而不保存整个模型)。或者,仍然有更好的方法来实现这一点:可以使用load_model加载模型,然后使用save_weights保存权重,最后删除模型文件)。你知道吗

相关问题 更多 >