何时使用分离

问题描述

如果我有两个不同的神经网络(由model1和model2参数化)和相应的两个优化程序,那么使用不带detach()的model2.parameters的以下操作是否会导致其梯度发生变化?我的要求是,我只想计算两个模型参数之间的均方损失,但更新与model1对应的优化器,而保持model2不变。

opt1 = torch.optim.SGD(self.model1.parameters(),lr=1e-3)
opt2 = torch.optim.SGD(self.model2.parameters(),lr=1e-3)

loss = (self.lamb / 2.) * ((torch.nn.utils.parameters_to_vector(self.model1.parameters()) - torch.nn.utils.parameters_to_vector(self.model2.parameters()))**2).sum()

loss.backward()
opt1.step()

我一般如何决定是否对任何操作使用分离?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)