小编Deo*_*ove的帖子

在 PyTorch 中冻结现有模型的某些层

我正在使用 mobileNetV2,我只想冻结模型的一部分。我知道我可以使用以下代码来冻结整个模型

MobileNet = models.mobilenet_v2(pretrained = True)

for param in MobileNet.parameters():
    param.requires_grad = False
Run Code Online (Sandbox Code Playgroud)

但我希望从 (15) 开始的所有内容都保持不冻结。如何在所需层被冻结之前选择性地冻结所有内容?

    (15): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(960, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
          (1): BatchNorm2d(960, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(160, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      )
    )
    (16): InvertedResidual( …
Run Code Online (Sandbox Code Playgroud)

python pytorch

23
推荐指数
2
解决办法
4万
查看次数

标签 统计

python ×1

pytorch ×1