在对训练模型进行参数更新时,遇到了一些问题。例如,我有两个丢失函数:loss1和loss2,让loss = loss1 + loss2。该模型具有特征提取层、分类器层和分类器层。在特征提取层中,使用loss更新参数,在分类器层中使用loss1更新参数。我怎么能在火把里做到这一点??谢谢你们!
发布于 2022-01-15 14:26:29
fe是特征提取层,fc是分类器层。一种方法是执行两次反向传球:
loss2上的第一个不激活的fc层梯度,fe.和
loss1上的因此,fc应该具有与loss1相关的梯度,而fe将具有来自loss1和loss2的梯度,即loss。
>>> fc.requires_grad_(False)
>>> loss2.backward(retain_graph=True)
>>> fc.requires_grad_(True)
>>> loss1.backward()一定要确保这是您想要的结果.
https://stackoverflow.com/questions/70720020
复制相似问题