PyTorch自编码器训练 AssertionError: nn criterions don't compute the gradient w.r.t. targets

在pretrained model的基础上添加自编码器进行信息提炼。在Pytorch, 对MSE loss进行梯度回传时,报错信息为

AssertionError: nn criterions don't compute the gradient w.r.t. targets - please mark these variables as volatile or not requiring gradients

这类问题会有一系列原因,比如detach(),但本质很可能是api调用错误。网上有类似的例子(也是自编码器遇到的),问题原因基本上都是loss(output, target)的参数输入顺序颠倒。由于涉及到梯度回传,因此output和target的性质并不等价,因此需要严格满足顺序。

自编码器的解码器输出是output,编码器的输入是target,注意逻辑。

建议参考:https://discuss.pytorch.org/t/nn-criterions-dont-compute-the-gradient-w-r-t-targets/3693/4

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值