错误代码行定位:
loss.backward()
报错:
RuntimeError: Trying to backward through the graph a second time (or directly access saved tensors after they have already been freed). Saved intermediate values of the graph are freed when you call .backward() or autograd.grad(). Specify retain_graph=True if you need to backward through the graph a second time or if you need to access saved tensors after calling backward.
错误解释:
这个错误表明你在尝试对同一个计算图进行多次反向传播(backward),而 PyTorch 默认情况下只允许对每个计算图进行一次反向传播。在调用 backward() 之后,计算图中的中间张量会被释放,以节省内存。如果你需要对同一个计算图进行多次反向传播,或者在调用 backward() 之后还需要访问这些中间张量,你需要设置 retain_graph=True。
修改:
loss.backward(retain_graph=True)

被折叠的 条评论
为什么被折叠?



