- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简而言之:
在 pytorch 中使用 adadelta 优化器时,我无法绘制 lr/epoch 曲线,因为 optimizer.param_groups[0]['lr']
总是返回相同的值。
详细说明:
Adadelta 可以仅使用一阶信息随时间动态适应,并且具有超越 Vanilla 随机梯度下降 [1] 的最小计算开销。
在pytorch中,Adadelta的源码在这里https://pytorch.org/docs/stable/_modules/torch/optim/adadelta.html#Adadelta
因为它不需要手动调整学习率,据我所知,我们不必在声明优化器后设置任何调度
self.optimizer = torch.optim.Adadelta(self.model.parameters(), lr=1)
检查学习率的方法是
current_lr = self.optimizer.param_groups[0]['lr']
问题是它总是返回 1(初始 lr)。
谁能告诉我怎样才能得到真正的学习率,这样我才能画出 lr/epch 曲线?
最佳答案
检查:self.optimizer.state
。这是用 lr 优化的,并在优化过程中使用。
根据文档,lr 只是:
lr (float, optional): coefficient that scale delta before it is applied to the parameters (default: 1.0)
https://pytorch.org/docs/stable/_modules/torch/optim/adadelta.html
已编辑:您可能会在 self.optimizer.state 值中找到 acc_delta 值,但您需要查看该词典包含的词典:
dict_with_acc_delta = [self.optimizer.state[i] for i in self.optimizer.state.keys() if "acc_delta" in self.optimizer.state[i].keys()]
acc_deltas = [i["acc_delta"] for i in dict_with_acc_delta]
我有八层,acc_deltas 列表中的元素形状如下
[torch.Size([25088]),
torch.Size([25088]),
torch.Size([4096, 25088]),
torch.Size([4096]),
torch.Size([1024, 4096]),
torch.Size([1024]),
torch.Size([102, 1024]),
torch.Size([102])]
关于python - 如何在pytorch中打印Adadelta中的 "actual"学习率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405934/
我是一名优秀的程序员,十分优秀!