AttributeError: ‘str‘ object has no attribute ‘param_group‘

DeamNet 代码调试

 Epoch=2000,运行到999次报错AttributeError: 'str' object has no attribute 'param_group'

Traceback (most recent call last):
  File "D:/Papers to read/2022.07/DeamNet-main/DeamNet-main/train.py", line 189, in <module>
    if (epoch + 1) % (opt.nEpochs / 2) == 0:
AttributeError: 'str' object has no attribute 'param_group'

Process finished with exit code 1

错误代码段: 

 if (epoch + 1) % (opt.nEpochs / 2) == 0:
            for param_group in optimizer.param_groups:
                param_group['lr'] /= 10.0
            print('Learning rate decay: lr={}'.param_group['lr'])
optimizer.param_groups: 是长度为2的list,其中的元素是2个字典;optimizer.param_groups[0]: 长度为6的字典,包括[‘amsgrad’, ‘params’, ‘lr’, ‘betas’, ‘weight_decay’, ‘eps’]这6个参数;
optimizer.param_groups[1]: 好像是表示优化器状态的一个字典.

没找到好的解决办法,所以结合看到的print内容,改代码为:

      if (epoch + 1) % (opt.nEpochs / 2) == 0:
            for param_group in optimizer.param_groups:
                param_group['lr'] /= 10.0
            # print('Learning rate decay: lr={}'.param_group['lr'])
            print('Learning rate decay: lr={}')

由于源代码设置epoch=2000, 运行比较慢,我只是想确定代码没有错误,所以改为epoch=10,简单测试一下。现在不报错了 

暂时不确定这行代码不打印后半部分的影响,只是想测试代码,所以算是跑通了,准备开始学习代码主要内容啦。

Learning rate decay: lr={}

===> Epoch[10](1/20): Loss: 0.0002 || Timer: 0.0370 sec.
===> Epoch[10](2/20): Loss: 0.0006 || Timer: 0.0328 sec.
.................
===> Epoch[10](19/20): Loss: 0.0004 || Timer: 0.0358 sec.
===> Epoch[10](20/20): Loss: 0.0003 || Timer: 0.0347 sec.
===> Epoch 10 Complete: Avg. Loss: 0.0004

===> Avg. PSNR: 30.5941 dB

Process finished with exit code 0

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值