Применен код со статическими методами в классе MyReLU и вызов конструктора в виде
relu = MyReLU.apply
=========================================
Полносвязная сеть ReLU с одним скрытым слоем и без смещений, обученная предсказывать y по x путем минимизации квадрата евклидова расстояния.
Эта реализация вычисляет прямой проход, используя операции с переменными PyTorch, и использует автоградацию PyTorch для вычисления градиентов.
Переменная PyTorch представляет собой оболочку вокруг тензора PyTorch и представляет узел в вычислительном графе.
Originally told :
A PyTorch Variable is a wrapper around a PyTorch Tensor, and represents a node in a computational graph.
Это слово «обертка» означает, что Tensor сам по себе не был способен записывать операции для автоматического дифференцирования AutoGrad в PyTorch. Чтобы записать их и вычислить производные, Tensor обязательно должен быть обернут классом Variable.
=====================================
Однако,на данный момент класс Variable устарел, и мы больше не беспокоимся между Variable и Tensor, поскольку Autograd также поддерживает Tensor.
Если x — переменная, то x.data — это тензор, задающий свое значение, а x.grad — другая переменная, содержащая градиент x по отношению к некоторому скалярному значению.
PyTorch Variables имеют тот же API, что и тензоры PyTorch: (почти) любую операцию, которую вы можете выполнять с тензором, вы также можете выполнять с переменной; разница в том, что autograd позволяет автоматически вычислять градиенты.