私は、Pytorch でアクション バランス RND を使用して PPO のコードを書いています。問題に遭遇したとき、RND と PPO の更新ループを書いていました。
次のコードは実行されますが、テンソルを使用すると実行されません: 単純化された状況の Python コード
コメントアウトされたコードは、機能しない 1 つの方法であり、次のエラーが発生します。
トレースバック (最後の最後の呼び出し): ファイル "d:\Andreas\02456-RL-Exploration\tst2.py"、22 行目、lis[i].backward() ファイル "C:\code\python\env\base \lib\site-packages\torch\tensor.py"、245 行目、後方 torch.autograd.backward(self、gradient、retain_graph、create_graph、inputs=inputs) ファイル "C:\code\python\env\base\ lib\site-packages\torch\autograd_ init _.py", line 145, in backward Variable._execution_engine.run_backward( RuntimeError: グラフを再度逆方向に実行しようとしていますが、保存された中間結果は既に解放されています。retain_graph を指定します。初めて .backward() または autograd.grad() を呼び出すときは =True。
なぜこれが起こるのかわかりません。誰でも説明できますか?