【问题标题】:What is the gradient of pytorch floor() gradient method?pytorch floor()梯度法的梯度是什么?
【发布时间】:2020-02-10 22:28:35
【问题描述】:

我希望在我的一个模型中使用floor() 方法。我想了解 pytorch 对其梯度传播的作用,因为 floor 是一种不连续的方法。

如果没有定义渐变,我可以根据需要重写后向方法来定义我自己的渐变,但是如果可能的话,我想了解默认行为是什么以及相应的源代码。

import torch

x = torch.rand(20, requires_grad=True)
y = 20*x
z = y.floor().sum()
z.backward()

x.grad 返回零。

z 有一个 grad_fn=

所以 FloorBackward 是渐变方法。但是pytorch仓库中没有提到FloorBackward的源码。

【问题讨论】:

    标签: python machine-learning pytorch backpropagation


    【解决方案1】:

    因为地板函数是分段常数。这意味着几乎所有地方的梯度都必须为零。

    虽然代码没有说明任何内容,但我希望梯度在任何地方都设置为常数零。

    【讨论】:

      猜你喜欢
      • 2017-09-13
      • 2013-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 2018-10-23
      • 2020-12-28
      • 1970-01-01
      相关资源
      最近更新 更多