計算の要素を勾配計算から除外する 2 つの方法を知っていますbackward
方法 1:使用with torch.no_grad()
with torch.no_grad():
y = reward + gamma * torch.max(net.forward(x))
loss = criterion(net.forward(torch.from_numpy(o)), y)
loss.backward();
方法 2:使用.detach()
y = reward + gamma * torch.max(net.forward(x))
loss = criterion(net.forward(torch.from_numpy(o)), y.detach())
loss.backward();
これら2つに違いはありますか?どちらにもメリット/デメリットはありますか?