• 修改optimizer的 学习率



    def step(self): "Update parameters and rate" self._step += 1 rate = self.rate() for p in self.optimizer.param_groups: p['lr'] = rate self._rate = rate self.optimizer.step()

    param———groups 代表了有几组需要优化的网络,用在同时优化多个网络的情形。


    print("optimizer_3.defaults:", trainer.defaults)
    print("optimizer_3.param_groups长度:", len(trainer.param_groups))
    print("optimizer_3.param_groups一个元素包含的键:", trainer.param_groups[0].keys())

    optimizer_3.defaults: {'lr': 0.5, 'momentum': 0, 'dampening': 0, 'weight_decay': 0.001, 'nesterov': False}
    optimizer_3.param_groups长度: 2
    optimizer_3.param_groups一个元素包含的键: dict_keys(['params', 'lr', 'momentum', 'dampening', 'weight_decay', 'nesterov'])


    trainer= torch.optim.SGD([{'params': params_1x},
    {'params': net.fc.parameters(),'lr': learning_rate * 10}],lr=learning_rate, weight_decay=0.001)

    这里看出向traine中传递力两组的param,由于第一组没有设置‘lr’,因此使用了defaults中的‘lr‘

  • 相关阅读:
    Java实战项目收集
    Drebin数据集
    网络“法官”
    沉醉
    孔方兄
    《Qt 5.9 C++开发指南》例程源码
    《论语》中那些耳熟能详的词汇
    破祟
    Qt使用UI编辑器添加的控件Icon运行时不显示
    Ubuntu格式化SD卡
  • 原文地址:https://www.cnblogs.com/zhangbuang/p/16096244.html
Copyright © 2020-2023  润新知