美文网首页
pytorch学习之优化

pytorch学习之优化

作者: zhaoxin94 | 来源:发表于2018-06-18 19:54 被阅读0次

    调整学习率

    调整学习率主要有三种方法。

    1.新建优化器

    这种方法更简单,由于optimizer十分轻量级,构建开销很小,故可以构建新的optimizer。但是新的优化器会重新初始化动量等状态信息,这对于使用动量的优化来说,可能会造成损失函数在收敛过程中出现震荡。

    old_lr = 0.1
    optimizer = optim.SGD([
                    {'params': net.features.parameters()},
                    {'params': net.classifier.parameters(), 'lr':old_lr * 0.1}
                ], lr=1e-5)
    

    2.修改optimizer.param_groups中对应的学习率

    def adjust_learning_rate(optimizer, epoch):
        """Sets the learning rate to the initial LR decayed by 10 every 30 epochs"""
        lr = args.lr * (0.1 ** (epoch // 30))
        for param_group in optimizer.param_groups:
            param_group['lr'] = lr
    

    在每个周期开始时执行adjust_learning_rate函数。

    Exmaple Code

    3.使用optim的内置函数

    详情参见 https://pytorch.org/docs/stable/optim.html#how-to-adjust-learning-rate

    总结:三种方法都可以。更推荐后二种方法。

    参考资料

    相关文章

      网友评论

          本文标题:pytorch学习之优化

          本文链接:https://www.haomeiwen.com/subject/tnaneftx.html