快速检查一下我的问题。
我想构建一个基于这样的模型F
和G
生成其输出的模型。
y = G(F(x))
其中x当然是输入,y是输出。
但是,我首先要更新F(x)
的权重,然后再根据F
的值更新G
和y
的权重。 / p>
我知道pytorch提供了一种指定您自己的backprop
方法的方法..但是由于我的“方法”似乎是建立在基本组件的基础上的,难道我可以使用标准解决方案来做到这一点吗? / p>
我的想法是,我需要为F
和G
对象使用单独的优化器/损失。但是除此之外,还为复合模型G(F())
提供了一些更新功能。任何人都可以确认吗?
答案 0 :(得分:1)
如果按照您的建议,F
和G
的优化器和损失可以分开,那么我认为没有必要实施任何其他更新功能,因为您可以指定每个优化程序 eg
optimizer_F = optim.SGD(F.parameters(),...)
optimizer_G = optim.SGD(G.parameters(),...)
然后,当您调用optimizer_F.step()
时,它将仅更新F
的参数,类似地,optimizer_G.step()
将仅更新G
的参数。