首页 > 解决方案 > 使用 pytorch 获取 optimiser.step() 应用的参数更新

问题描述

如何检索 pytorch 中优化步骤应用的参数更新?虽然可以使用grad访问参数的梯度,例如

network.layer_1.weight.grad

优化器的 step 方法应用的实际参数更新将取决于使用的优化算法和超参数的当前值(例如衰减学习率)。检索参数实际变化的一种方法是计算训练步骤前后参数的差异,例如

w1 = network.layer_1.weight.detach().numpy().copy()
optimiser.step()
w1_updated = network.layer_1.weight.detach().numpy().copy()
parameter_update = w1_updated - w1

然而,这似乎在计算上是昂贵且不必要的,因为在调用 时已经计算了相同的数量optimiser.step()。是否有更智能的方法来检索参数更新的实际值?

标签: pythonpytorchgradient-descent

解决方案


推荐阅读