[Pytorch]: 错误汇总

本文介绍了一个关于自定义后向传播实现中常见的错误——在PyTorch中使用save_for_backward时,尝试保存非输入或输出张量的变量。通过实例展示了如何正确地在前向传播过程中修改权重,避免引发运行时错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于自定义后向传播错误

Traceback (most recent call last):
  File "/xxx/xxx/xxx.py", line 217, in <module>
    output = L.forward(x, label)
  File "/xxx/xxx/xxx.py", line 201, in forward
    return xxx()(input, target, self.weight)
RuntimeError: save_for_backward can only save input or output tensors, but argument 2 doesn't satisfy this condition

分析:出现这个错误是我在forward中改变了weight这个变量,weight=weight.div(scalar),这导致参数不符合save_for_backward的要求。
解决:在forward中要改变weight的值可以使用就地运算weight.div_(scalar)。这样即改变也weight的值,又不改变原本的指向。


遇到其它问题会更行,待续…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值