我为我的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'
答案 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)