pytorch floor() 梯度法的梯度是什么?

the*_*ikS 3 python machine-learning backpropagation pytorch

我希望floor()在我的模型之一中使用方法。我想了解 pytorch 用它的梯度传播做了什么,因为它floor是一种不连续的方法。

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

import torch

x = torch.rand(20, requires_grad=True)
y = 20*x
z = y.floor().sum()
z.backward()
Run Code Online (Sandbox Code Playgroud)

x.grad 返回零。

z 有一个 grad_fn=

所以FloorBackward就是梯度法。但是没有参考FloorBackwardpytorch 存储库中的源代码。

fla*_*awr 5

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

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