Область применения с torch.no_grad () в pytorch - PullRequest
0 голосов
/ 23 марта 2020
with torch.no_grad():
    input = Variable(input).cuda()
    target = Variable(target).cuda(non_blocking=True)
y=model(input)
# many things here

Продолжает ли действие no_grad выходить за рамки «с»?

1 Ответ

2 голосов
/ 23 марта 2020

no_grad не действует за пределами области действия "с".

Согласно этому ответу от модератора в блоге pytorch:

with torch.no_grad():
    # No gradients in this block
    x = self.cnn(x)

# Gradients as usual outside of it
x = self.lstm(x)

Это цель оператора with в python. Переменная, используемая with (здесь torch.no_grad()), действует только в контексте with, а не после. См. python do c для получения полной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...