Pytorch,反向传播和复合模型

时间:2020-01-16 14:40:45

标签: pytorch

快速检查一下我的问题。

我想构建一个基于这样的模型FG生成其输出的模型。

y = G(F(x))

其中x当然是输入,y是输出。​​

但是,我首先要更新F(x)的权重,然后再根据F的值更新Gy的权重。 / p>

我知道pytorch提供了一种指定您自己的backprop方法的方法..但是由于我的“方法”似乎是建立在基本组件的基础上的,难道我可以使用标准解决方案来做到这一点吗? / p>

我的想法是,我需要为FG对象使用单独的优化器/损失。但是除此之外,还为复合模型G(F())提供了一些更新功能。任何人都可以确认吗?

1 个答案:

答案 0 :(得分:1)

如果按照您的建议,FG的优化器和损失可以分开,那么我认为没有必要实施任何其他更新功能,因为您可以指定每个优化程序 eg

的一组参数
optimizer_F = optim.SGD(F.parameters(),...)
optimizer_G = optim.SGD(G.parameters(),...)

然后,当您调用optimizer_F.step()时,它将仅更新F的参数,类似地,optimizer_G.step()将仅更新G的参数。