/不支持的操作数类型:'Adam'和'int

时间:2019-07-22 18:03:30

标签: python optimization generative-adversarial-network

我为我的cnn使用adam优化器,但是在调整学习率时,我得到了/的不支持的操作数类型:'Adam'和'int错误,我该如何解决这个错误

我正在使用python 3.5和pytorch 1.1.0

def adjust_learning_rate(optimizer, init_lr, epoch, every):
    lrd = init_lr / every
    old_lr = optimizer.param_groups[0]['lr']

    #linearly decaying lr
    new_lr = old_lr - lrd
    if new_lr < 0: new_lr = 0
    for param_group in optimizer.param_groups:
        param_group['lr'] = new_lr

TypeError: unsupported operand type(s) for /: 'Adam' and 'int'

2 个答案:

答案 0 :(得分:0)

在调用函数时,您没有以正确的顺序传递参数。具体来说,优化程序(在您的情况下为亚当)应该是第一个参数,而不是第二个参数。

如果这是类中的方法,则您忘记了self参数。

答案 1 :(得分:0)

这是为了优化

optimizer = optim.Adam(net.parameters(), lr= 0.00001, betas = (0.5, 0.999), weight_decay=0.0000)

这是为了调整学习率

if epoch >= opt.annealStart:
       adjust_learning_rate(optimizer, epoch, opt.annealEvery)