pytorch ***运行时错误:其中一个微分Tensor不需要grad

wbrvyc0a  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(421)
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

字符串
我尝试微调网络的部分参数,但出现错误。这个问题有什么解决办法吗?

zxlwwiss

zxlwwiss1#

欢迎Eric加入社区。虽然我们可能会受益于更多的信息,在您的身边,以重现错误。然而,错误消息似乎很简单。
看起来你正在尝试对一些不需要梯度的Tensor进行微调。通常情况下,您只会对网络头部进行微调,而不会冻结 Backbone.js 。在这里,优化器似乎试图在网络的冻结部分运行梯度。
不要通过requires_grad过滤模型参数,而是尝试只传递参数。

# Change the optimizer call
self.opt = AdamW(
    self.model.parameters(), lr=self.lr, weight_decay=self.weight_decay
)

字符串

t5zmwmid

t5zmwmid2#

当仅对模型的一部分进行微调并使用检查点技术时,出现了相同的错误。

相关问题