Default / 默认 · August 31, 2021

pytorch冻结模型部分层

Table of Content
<h1>冻结模型部分层</h1>
for name ,param in model.named_parameters():
        param.requires_grad = False
        for ele in unfreeze_layers:
            if ele in name:
                param.requires_grad = True
                break

#过滤掉requires_grad = False的参数
  optimizer = torch.optim.Adam(filter(lambda p: p.requires_grad, model.parameters()), lr=0.00001)

最后在做训练的时候,优化器中一定要添加过滤器filter把requires_grad = False的参数过滤掉,在训练的时候,不会更新这些参数。

%d bloggers like this: