RuntimeError: Trying to backward through the graph a second time (or directly access saved tensor...

原因:

在跑深度学习中出现: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.

解决办法:

发现 retain_graph=True 也不对,原因是我想要将每次跑出的结果加入下一次训练迭代,直接将预测的结果y_pre赋给x,改变了tensor的梯度(grad),其实只需要改变data属性就行,错误结果为:

xx = y_pred

修改正确为:

xx = y_pred.data

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值