Parameters 在Pytorch中,quantity.backward()计算quantity wrt的梯度哪个参数?
反向方法计算梯度wrt到哪些参数?所有参数都要求_grad具有真值 有趣的是,在PytorchParameters 在Pytorch中,quantity.backward()计算quantity wrt的梯度哪个参数?,parameters,neural-network,pytorch,gradient-descent,Parameters,Neural Network,Pytorch,Gradient Descent,反向方法计算梯度wrt到哪些参数?所有参数都要求_grad具有真值 有趣的是,在Pytorch 计算梯度 及 加载基于渐变更新参数的优化器 需要关于感兴趣的参数标识的不同信息才能工作 第一个似乎知道计算梯度的参数。 第二个需要向其提及的参数。请参阅下面的代码 quantity.backward() optim = torch.SGD(model.parameters()) optim.step() 怎么样 为什么向后不需要model.parameters() 提到特定的参数子集不是更有效吗?
quantity.backward()
optim = torch.SGD(model.parameters())
optim.step()
怎么样
为什么向后不需要model.parameters()
提到特定的参数子集不是更有效吗?计算
数量
需要构造一个2排序图,其中节点要么是张量,要么是张量上的可微运算(所谓的计算图)。在引擎盖下,pytorch为您跟踪此图表。调用quantity.backward()
时,要求Pytork使用遇到的每个操作的导数而不是操作本身,对图形执行从输出到输入的反向遍历。标记为需要梯度的叶张量累加向后计算的梯度
优化器是另一回事:它只是在一组参数上实现优化策略,因此它需要知道您希望它优化哪些参数。因此quantity.backward()
计算梯度,optim.step()
使用这些梯度执行优化步骤,更新模型中包含的参数
至于效率,我没有看到任何支持在向后传递中指定参数的论据(其语义是什么?)。
如果您希望避免在后退模式下遍历部分图形,pytorch将自动为您执行此操作,前提是您记住:
- 可以将叶张量标记为不需要梯度
- 非叶张量——某些运算f(x1,…xN)的输出——需要梯度,如果x1…xN中至少有一个需要梯度
- 不需要梯度块向后遍历的张量,确保没有不必要的计算
计算数量
需要构造一个2排序图,其中节点要么是张量,要么是张量上的可微运算(所谓的计算图)。在引擎盖下,pytorch为您跟踪此图表。调用quantity.backward()
时,要求Pytork使用遇到的每个操作的导数而不是操作本身,对图形执行从输出到输入的反向遍历。标记为需要梯度的叶张量累加向后计算的梯度
优化器是另一回事:它只是在一组参数上实现优化策略,因此它需要知道您希望它优化哪些参数。因此quantity.backward()
计算梯度,optim.step()
使用这些梯度执行优化步骤,更新模型中包含的参数
至于效率,我没有看到任何支持在向后传递中指定参数的论据(其语义是什么?)。
如果您希望避免在后退模式下遍历部分图形,pytorch将自动为您执行此操作,前提是您记住:
- 可以将叶张量标记为不需要梯度
- 非叶张量——某些运算f(x1,…xN)的输出——需要梯度,如果x1…xN中至少有一个需要梯度
- 不需要梯度块向后遍历的张量,确保没有不必要的计算
如果数量
是一个正确的标量,是否在每个叶节点上累积d数量/d叶
(通过链式规则)?若数量是一个向量,它在每片叶子上累积了一行雅可比矩阵。这是正确的。在生成性对抗网络中,指定参数可以使backprop程序更有效。在这种情况下,我们有两个目标值(一个用于生成器,一个用于鉴别器)。一些模型参数需要每个目标值的梯度,但不是所有参数。我明白了。我对GANs的印象是,当您计算生成数据的鉴别器损失时,您可以(/应该?)首先detach()
将它们从图形中分离出来,有效地阻止鉴别器损失更新生成器参数。不太熟悉GANs,所以对此持怀疑态度,认为如果数量
是一个标量正确,它是否在每个叶节点上累积d数量/d叶
(通过链式规则)?若数量是一个向量,它在每片叶子上累积了一行雅可比矩阵。这是正确的。在生成性对抗网络中,指定参数可以使backprop程序更有效。在这种情况下,我们有两个目标值(一个用于生成器,一个用于鉴别器)。一些模型参数需要每个目标值的梯度,但不是所有参数。我明白了。我对GANs的印象是,当您计算生成数据的鉴别器损失时,您可以(/应该?)首先detach()
将它们从图形中分离出来,有效地阻止鉴别器损失更新生成器参数。我对甘斯并不太熟悉,所以还是对此持保留态度吧