エラー内容
RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
原因
この記事にも書いてあるのですが、
勾配情報が載っていない tensor 型の変数に対して .backward()
を実行すると、このエラーが発生しました。
loss の計算の途中の値に対して以下のような記述をしていると、そのエラーが発生します。
-
with torch.no_grad():
ブロックで囲む -
.detach()
メソッドを読んでいる -
.requires_grad = False
で勾配計算を無効にしている
参考
ちなみに自分の場合は、 loss 計算の途中の中間変数に .detach()
を実行してしまっていました。
見直してみましょう( ˘ω˘)スヤァ...