目前,我正在开发基于爱丽丝梦游仙境故事生成文本的lstm。我有两个脚本,training script和testing 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的最新版本上运行呢?你知道吗
这是因为您正在以调用
ModelCheckpoint
的方式保存整个模型(架构+权重+等等)。根据Keras documentation,ModelCheckpoint
接受一个名为save_weights_only
的参数,默认值为False
,这样:因此,在您的代码中,您正在保存整个模型,因为您没有设置} 加载模型,也可以设置
save_weights_only=True
。可以使用^{save_weights_only=True
并再次运行训练脚本(如果希望只保存权重而不保存整个模型)。或者,仍然有更好的方法来实现这一点:可以使用load_model
加载模型,然后使用save_weights
保存权重,最后删除模型文件)。你知道吗相关问题 更多 >
编程相关推荐