一种自己设置调整学习率的方法,可以放在epoch循环里。
1.optimizer.state_dict()和optimizer.param_groups
optimizer.state_dict()是一个字典,和model.state_dict()类似,包含优化器的state信息和param_groups的字典对象
optimizer = torch.optim.Adam(Net.parameters(),lr=lr) print(optimizer.state_dict().keys())输出:dict_keys(['state', 'param_groups'])
其中,“param_groups”这个key对应的value是一个:长度为一的链表,链表里面是个由学习率,动量等参数组成的字典对象。
print(optimizer.state_dict()["param_groups"])输出:[{'lr': 0.01, 'betas': (0.9, 0.999), 'eps': 1e-08, 'weight_decay': 0, 'amsgrad': False, 'params': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}]
optimizer.param_groups是长度为2的list,其中的元素是2个字典;
optimizer.param_groups[0]:长度为6的字典,包括[‘amsgrad’, ‘params’, ‘lr’, ‘betas’, ‘weight_decay’,

"该博客介绍了如何在PyTorch中手动设置和调整学习率。通过(optimizer.state_dict()["param_groups"][0]["lr"])或(optimizer.param_groups[0]["lr"])可以访问并修改学习率。在每个epoch循环中,当epoch除以5余数为0时,学习率乘以0.9以实现衰减。示例代码展示了学习率随训练进程递减的过程。"
最低0.47元/天 解锁文章
3642

被折叠的 条评论
为什么被折叠?



