问题描述
如果我有两个不同的神经网络(由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 (将#修改为@)