RuntimeError: grad can be implicitly created only for scalar outputs

打印 上一主题 下一主题

主题 859|帖子 859|积分 2579

本日跑一个模型的时候,报了一个错:
RuntimeError: grad can be implicitly created only for scalar outputs
关于这个错出现的原因,可以参考博文,这里不做多余的表明:grad can be implicitly created only for scalar outputs-CSDN博客
解决:
然后呢,最直接的原因就是说,你的丧失值有题目,在你的反向传播的这些丧失当中,好比你由好几个丧失,然后这个几个丧失相加:
  1. self.loss_G = self.loss_L1 * self.opt.lambda_L1 + self.loss_G_GAN * self.opt.lambda_Gan + \
  2.                       self.Perceptual_loss * self.opt.lambda_P + self.Style_Loss * self.opt.lambda_S
复制代码
末了的反向传播是:
  1. self.loss_G.backward()
复制代码
所以,报这个错很大大概就是这个:self.loss_G出错了,你就把相加的这几个丧失都检查一遍,如果某一个丧失没有值,或者这个值有题目,那么你就返回去看看这个丧失值盘算的数据当中是否有题目,改一改就行。
最简朴的方法:
把相加的几个丧失分别代替self.loss_G举行反向传播,好比检查第一个丧失:
self.loss_L1.backward(),运行代码,若没报错就阐明这个丧失没题目,挨个挨个试,反正也就这么几个丧失,哪一个报错就收吗哪一个丧失有题目,改一下这个丧失,或者干脆不要这个丧失就行。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表