微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

何时使用分离

如何解决何时使用分离

如果我有两个不同的神经网络(由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 举报,一经查实,本站将立刻删除。