GN_params = list(np.load('/home/linghuxiongkun/workspace/guided-diffusion/guided_diffusion/GN_param_names.npy'))
for k,v in self.model.named_parameters():
if k not in GN_params:
v.requires_grad = False
self.opt = AdamW(
filter(lambda p: p.requires_grad, self.model.parameters()), lr=self.lr, weight_decay=self.weight_decay
字符串
我尝试微调网络的部分参数,但出现错误。这个问题有什么解决办法吗?
2条答案
按热度按时间zxlwwiss1#
欢迎Eric加入社区。虽然我们可能会受益于更多的信息,在您的身边,以重现错误。然而,错误消息似乎很简单。
看起来你正在尝试对一些不需要梯度的Tensor进行微调。通常情况下,您只会对网络头部进行微调,而不会冻结 Backbone.js 。在这里,优化器似乎试图在网络的冻结部分运行梯度。
不要通过
requires_grad
过滤模型参数,而是尝试只传递参数。字符串
t5zmwmid2#
当仅对模型的一部分进行微调并使用检查点技术时,出现了相同的错误。