python - 使用 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()
。是否有更智能的方法来检索参数更新的实际值?
解决方案
推荐阅读
- javascript - next.js 状态对象未定义
- css - 当文本超出容器时打破提交按钮的文本
- python-3.x - 使用 `pytorch.manual_seed(seed)` 时使用哪个种子?
- python-3.x - 尝试在没有已知父包的情况下进行相对导入 - Python
- reactjs - 我如何检查两个状态数组是否在 React 中共享相同的值
- excel - 无法将文本从 Excel 复制到网站,显示运行时错误
- python - RecursionError:在 Turtle 模块中调用 Python 对象时超出了最大递归深度
- go - Kafka-Consumer 问题,显示一些超时错误
- ios - iOS - 另一个框架内的框架的位码问题
- amazon-web-services - 登陆区对 Ec2 实例的 SSH 访问超时