为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

精慕HU 2021-08-17 16:01:49
在训练过程之后,我想通过加载创建的model.h5并执行评估过程来检查准确性。但是,我收到以下警告:/usr/local/lib/python3.5/dist-packages/keras/engine/saving.py:269: UserWarning: 在保存文件中未找到训练配置:模型未编译。手动编译。warnings.warn('在保存文件中没有找到训练配置:这个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)我不明白我做错了什么。. . 请帮我!求救:-(
查看完整描述

3 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

介绍

我想补充 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 训练的模型时),该模型将被保存为未编译。这会产生警告,您可以通过上述方式消除它。


查看完整回答
反对 回复 2021-08-17
  • 3 回答
  • 0 关注
  • 241 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号