首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新具有多重损失函数的火炬中的参数?

如何更新具有多重损失函数的火炬中的参数?
EN

Stack Overflow用户
提问于 2022-01-15 08:45:48
回答 1查看 256关注 0票数 1

在对训练模型进行参数更新时,遇到了一些问题。例如,我有两个丢失函数:loss1loss2,让loss = loss1 + loss2。该模型具有特征提取层、分类器层和分类器层。在特征提取层中,使用loss更新参数,在分类器层中使用loss1更新参数。我怎么能在火把里做到这一点??谢谢你们!

EN

回答 1

Stack Overflow用户

发布于 2022-01-15 14:26:29

fe是特征提取层,fc是分类器层。一种方法是执行两次反向传球:

  • -- loss2上的第一个不激活的fc层梯度,

fe.和

  • 第二次在loss1上的

因此,fc应该具有与loss1相关的梯度,而fe将具有来自loss1loss2的梯度,即loss

代码语言:javascript
复制
>>> fc.requires_grad_(False)
>>> loss2.backward(retain_graph=True)
>>> fc.requires_grad_(True)
>>> loss1.backward()

一定要确保这是您想要的结果.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70720020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档