pytorch floor()梯度方法的梯度是多少?

问题描述 投票:1回答:1

我正在我的一个模型中使用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个回答
0
投票

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

虽然代码没有说明任何问题,但我希望梯度到处都设置为常数零。

© www.soinside.com 2019 - 2024. All rights reserved.