optimizer.param_groups中到底有什么

        话不多说,请看调试图

optimizer.param_groups中到底有什么_第1张图片

         说白了,就是里面是一个列表,装了一个字典,字典中包含keys有['params', 'lr', 'betas', 'eps', 'weight_decay', 'amsgrad'],通过字典操作可以改变其中的参数值。

        一般来说,用的更多的是设置PyTorch的动态学习率,通过以上调试图片,我们知道了optimizer中包含lr的超参数,所以就可以修改,以下给了一种自写的函数方法。

def adjust_learning_rate(optimizer, epoch):
    lr = 0.0001 * (0.1 ** (epoch // 5))
    for param_group in optimizer.param_groups:
        param_group['lr'] = lr

        具体再train中的使用方法如下:

for epoch in range(args.start_epoch, args.epochs):
        adjust_learning_rate(optimizer, epoch)

        在训练epoch的时候放置即可。

        以上是小白程序员终于通过调试看到了一直想看的optimizer中的一个param_groups属性内容,就是说有了pdb这个调试工具后,如鱼得水了很多。

你可能感兴趣的:(服务器,python,conda)