用户警告:在保存文件中找不到训练配置:模型未*编译。手动编译

在训练过程之后,我想通过加载创建的model.h5并执行评估过程来检查准确性。但是,我收到以下警告:

/usr/local/lib/python3.5/dist-packages/keras/engine/saving.py:269: UserWarning: 在保存文件中找到训练配置:模型编译。手动编译。warnings.warn('在保存文件中没有找到训练配置:

http://img2.mukewang.com/611b6d000001cb2d06180478.jpg

这个dist-packages/keras/engine/saving.py文件


所以加载创建的模型的问题 - >这行代码


train_model = load_model('model.h5')

问题表明模型没有编译,但是,我做到了。


optimizer = Adam(lr=lr, clipnorm=0.001)

train_model.compile(loss=dummy_loss, optimizer=optimizer)

我不明白我做错了什么。. . 请帮我!求救:-(


精慕HU
浏览 242回答 3
3回答

慕神8447489

介绍我想补充 olejorgenb 的答案 - 对于特定场景,您不想训练模型,只需使用它(例如在生产中)。“编译”的意思是“准备训练”,主要包括设置优化器。也可以之前保存过,加载保存的模型后就可以继续“相同”的训练了。修复但是,场景如何 - 我只想运行模型?好吧,使用compile=False参数来load_model喜欢:trained_model = load_model('model.h5', compile=False)如果不先.fit()使用trained_model.compile(...),您将无法使用此模型,但最重要的是 - 警告会消失。杂项笔记顺便说一句,在我的 Keras 版本中,该参数include_optimizer的默认值为True. 这也适用于像Checkpoint. 这意味着,在加载由 Keras 保存的模型时,您通常可以指望包含的优化器(情况除外:请参阅 Hull Gasper 的回答)。但是,当您有一个不是由 Keras 训练的模型时(例如,当转换由 Darknet 训练的模型时),该模型将被保存为未编译。这会产生警告,您可以通过上述方式消除它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python