You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

报错TypeError: 'Adam'类型不可迭代的原因及解决咨询

ISR超分模型训练问题排查与解决

1. 可训练权重差异警告的处理

你遇到的UserWarning: Discrepancy between trainable weights and collected trainable weights...警告,是因为ISR库的模型并非标准Keras模型,不支持原生Keras的model.compile()方法,所以常规Stack Overflow上针对Keras模型的解决方案不适用。

这个警告属于ISR内部权重管理逻辑和Keras原生逻辑的差异,不会干扰模型训练和最终超分效果,完全可以忽略。

2. Adam不可迭代错误的原因与修复

TypeError: argument of type 'Adam' is not iterable错误,是因为ISR的训练接口对优化器的传参格式有要求——它需要优化器参数是可迭代类型(列表或字典),而你直接传入了单个Adam实例。

错误示例:

from tensorflow.keras.optimizers import Adam
opt = Adam(lr=1e-4)
model.train(train_dir='...', val_dir='...', optimizer=opt)  # 直接传Adam实例触发错误

正确写法二选一:

  • 包装成列表传入:
    opt = [Adam(lr=1e-4)]
    model.train(train_dir='...', val_dir='...', optimizer=opt)
    
  • 用字典指定优化器(更贴合ISR官方推荐):
    opt = {'name': 'adam', 'lr': 1e-4}
    model.train(train_dir='...', val_dir='...', optimizer=opt)
    

3. 代码运行有效性确认

Colab中出现的相同警告不影响代码运行,只要修复优化器传参错误后,你可以通过以下方式验证:

  • 跑一个极小批量的训练数据(比如1-2个epoch,少量样本)
  • 查看训练过程中是否输出损失值,且损失呈下降趋势
  • 用训练后的模型测试一张低分辨率图,看是否能生成超分结果

内容的提问来源于stack exchange,提问作者Kerim Mirzeyev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:03:17