***RuntimeError:其中一个区分张量不需要grad


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

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

欢迎Eric加入社区。尽管我们可能会从您这边的更多信息中受益,以便重现错误。然而,错误信息似乎很简单。

看起来你正试图对一些不需要梯度的张量进行微调。通常情况下,您只会对网络头进行微调,使主干冻结。在这里,优化器似乎试图在网络的冻结部分上运行梯度。

尝试仅传递参数,而不是通过requires_grad过滤模型参数。

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

最新更新