В PyTorch v0.4.0 вызов y = x.data
все еще имеет похожую семантику. Таким образом, y
будет тензором, который разделяет те же данные с x
, не связан с историей вычислений x
и имеет requires_grad=False
.
Однако .data
может быть небезопасным внекоторые случаи. Любые изменения в x.data
не будут отслеживаться автоградом, и вычисленные градиенты будут неверными, если в обратном проходе потребуется x
. Более безопасной альтернативой является использование x.detach()
, которое также возвращает Tensor, который обменивается данными с requires_grad=False
, но о его изменениях на месте сообщает autograd, если x
требуется в обратном направлении.
Ссылка: https://github.com/pytorch/pytorch/releases/tag/v0.4.0