Что такое градиент метода градиента pytorch floor ()? - PullRequest
2 голосов
/ 14 октября 2019

Я хочу использовать метод floor() в одной из моих моделей. Я хотел бы понять, что делает pytorch с распространением градиента, так как floor является прерывистым методом.

Если градиент не определен, я мог бы переопределить метод backward, чтобы определить свой собственный градиент при необходимости, но Я хотел бы понять, каково поведение по умолчанию и соответствующий исходный код, если это возможно.

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.

1 Ответ

3 голосов
/ 14 октября 2019

Поскольку функция пола является кусочно-постоянной. Это означает, что градиент должен быть нулевым почти везде.

Хотя код ничего об этом не говорит, я ожидаю, что градиент везде установлен на постоянный ноль.

...