文章预览
点击上方 “ 小白学视觉 ”,选择加" 星标 "或“ 置顶 ” 重磅干货,第一时间送达 作者丨歪杠小胀@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/451441329 编辑丨极市平台 极市导读 如果只有一个loss,那么直接 loss.backward() 即可,但是不止一个loss时,就不知道将backward()放在哪里了。本文作者总结了一些自己在遇到该问题时的解决方式,希望能和大家一起讨论交流 记录写这篇文章的初衷 最近在复现一篇论文的训练代码时,发现原论文中的总 loss 由多个 loss 组成。如果只有一个 loss ,那么直接 loss.backward() 即可,但是这里不止一个。一开始看到不止一个 loss 时,不知道将 backward() 放在哪里。 for j in range(len(output)): loss += criterion(output[j], target_var) 我们知道,一般传统的梯度回传步骤是这样的: outputs = model(images) loss = criterion(outputs,target) o
………………………………