美文网首页
torchvision 0.3 自带 resnet50 结构

torchvision 0.3 自带 resnet50 结构

作者: 谢小帅 | 来源:发表于2019-11-08 16:30 被阅读0次

    定义模型

    def res50_faster_rcnn(self_pretrained, num_classes):
        if not self_pretrained:
            print('load res50 backbone pretrained on COCO')
    
        pretrained = False if self_pretrained else True  # pretrain on COCO
        model = fasterrcnn_resnet50_fpn(pretrained=pretrained)
        in_features = model.roi_heads.box_predictor.cls_score.in_features
        model.roi_heads.box_predictor = FastRCNNPredictor(in_channels=in_features,
                                                          num_classes=num_classes)
        return model
    

    打印 params,只给出了 conv,省去了 bn, relu

    def model_params(model):
        print('{:>4} {:<50} {:<30} {}'.format('idx', 'param', 'size', 'grad'))
        for idx, (name, param) in enumerate(model.named_parameters()):  # recurse=True, as net itself is a big module
            print('{:>4} {:<50} {:<30} {}'.format(idx, name, str(param.size()), param.requires_grad))
    

    无论是否采用 pretrained, conv1conv2_x 都不更新参数,require_grad=False

     idx param                                              size                           grad
       0 backbone.body.conv1.weight                         torch.Size([64, 3, 7, 7])      False  # conv1, layer0
       1 backbone.body.layer1.0.conv1.weight                torch.Size([64, 64, 1, 1])     False  # conv2_x 0 重复 3 次
       2 backbone.body.layer1.0.conv2.weight                torch.Size([64, 64, 3, 3])     False
       3 backbone.body.layer1.0.conv3.weight                torch.Size([256, 64, 1, 1])    False
       4 backbone.body.layer1.0.downsample.0.weight         torch.Size([256, 64, 1, 1])    False  # layer0 与 layer1 连接处
       5 backbone.body.layer1.1.conv1.weight                torch.Size([64, 256, 1, 1])    False  # conv2_x 1
       6 backbone.body.layer1.1.conv2.weight                torch.Size([64, 64, 3, 3])     False
       7 backbone.body.layer1.1.conv3.weight                torch.Size([256, 64, 1, 1])    False
       8 backbone.body.layer1.2.conv1.weight                torch.Size([64, 256, 1, 1])    False  # conv2_x 2
       9 backbone.body.layer1.2.conv2.weight                torch.Size([64, 64, 3, 3])     False
      10 backbone.body.layer1.2.conv3.weight                torch.Size([256, 64, 1, 1])    False
      11 backbone.body.layer2.0.conv1.weight                torch.Size([128, 256, 1, 1])   True  # conv3_x
      12 backbone.body.layer2.0.conv2.weight                torch.Size([128, 128, 3, 3])   True
      13 backbone.body.layer2.0.conv3.weight                torch.Size([512, 128, 1, 1])   True
      14 backbone.body.layer2.0.downsample.0.weight         torch.Size([512, 256, 1, 1])   True  # layer1 和 layer2 连接处
      15 backbone.body.layer2.1.conv1.weight                torch.Size([128, 512, 1, 1])   True
      16 backbone.body.layer2.1.conv2.weight                torch.Size([128, 128, 3, 3])   True
      17 backbone.body.layer2.1.conv3.weight                torch.Size([512, 128, 1, 1])   True
      18 backbone.body.layer2.2.conv1.weight                torch.Size([128, 512, 1, 1])   True
      19 backbone.body.layer2.2.conv2.weight                torch.Size([128, 128, 3, 3])   True
      20 backbone.body.layer2.2.conv3.weight                torch.Size([512, 128, 1, 1])   True
      21 backbone.body.layer2.3.conv1.weight                torch.Size([128, 512, 1, 1])   True
      22 backbone.body.layer2.3.conv2.weight                torch.Size([128, 128, 3, 3])   True
      23 backbone.body.layer2.3.conv3.weight                torch.Size([512, 128, 1, 1])   True
      24 backbone.body.layer3.0.conv1.weight                torch.Size([256, 512, 1, 1])   True
      25 backbone.body.layer3.0.conv2.weight                torch.Size([256, 256, 3, 3])   True
      26 backbone.body.layer3.0.conv3.weight                torch.Size([1024, 256, 1, 1])  True
      27 backbone.body.layer3.0.downsample.0.weight         torch.Size([1024, 512, 1, 1])  True
      28 backbone.body.layer3.1.conv1.weight                torch.Size([256, 1024, 1, 1])  True
      29 backbone.body.layer3.1.conv2.weight                torch.Size([256, 256, 3, 3])   True
      30 backbone.body.layer3.1.conv3.weight                torch.Size([1024, 256, 1, 1])  True
      31 backbone.body.layer3.2.conv1.weight                torch.Size([256, 1024, 1, 1])  True
      32 backbone.body.layer3.2.conv2.weight                torch.Size([256, 256, 3, 3])   True
      33 backbone.body.layer3.2.conv3.weight                torch.Size([1024, 256, 1, 1])  True
      34 backbone.body.layer3.3.conv1.weight                torch.Size([256, 1024, 1, 1])  True
      35 backbone.body.layer3.3.conv2.weight                torch.Size([256, 256, 3, 3])   True
      36 backbone.body.layer3.3.conv3.weight                torch.Size([1024, 256, 1, 1])  True
      37 backbone.body.layer3.4.conv1.weight                torch.Size([256, 1024, 1, 1])  True
      38 backbone.body.layer3.4.conv2.weight                torch.Size([256, 256, 3, 3])   True
      39 backbone.body.layer3.4.conv3.weight                torch.Size([1024, 256, 1, 1])  True
      40 backbone.body.layer3.5.conv1.weight                torch.Size([256, 1024, 1, 1])  True
      41 backbone.body.layer3.5.conv2.weight                torch.Size([256, 256, 3, 3])   True
      42 backbone.body.layer3.5.conv3.weight                torch.Size([1024, 256, 1, 1])  True
      43 backbone.body.layer4.0.conv1.weight                torch.Size([512, 1024, 1, 1])  True
      44 backbone.body.layer4.0.conv2.weight                torch.Size([512, 512, 3, 3])   True
      45 backbone.body.layer4.0.conv3.weight                torch.Size([2048, 512, 1, 1])  True
      46 backbone.body.layer4.0.downsample.0.weight         torch.Size([2048, 1024, 1, 1]) True
      47 backbone.body.layer4.1.conv1.weight                torch.Size([512, 2048, 1, 1])  True
      48 backbone.body.layer4.1.conv2.weight                torch.Size([512, 512, 3, 3])   True
      49 backbone.body.layer4.1.conv3.weight                torch.Size([2048, 512, 1, 1])  True
      50 backbone.body.layer4.2.conv1.weight                torch.Size([512, 2048, 1, 1])  True
      51 backbone.body.layer4.2.conv2.weight                torch.Size([512, 512, 3, 3])   True
      52 backbone.body.layer4.2.conv3.weight                torch.Size([2048, 512, 1, 1])  True
      53 backbone.fpn.inner_blocks.0.weight                 torch.Size([256, 256, 1, 1])   True
      54 backbone.fpn.inner_blocks.0.bias                   torch.Size([256])              True
      55 backbone.fpn.inner_blocks.1.weight                 torch.Size([256, 512, 1, 1])   True
      56 backbone.fpn.inner_blocks.1.bias                   torch.Size([256])              True
      57 backbone.fpn.inner_blocks.2.weight                 torch.Size([256, 1024, 1, 1])  True
      58 backbone.fpn.inner_blocks.2.bias                   torch.Size([256])              True
      59 backbone.fpn.inner_blocks.3.weight                 torch.Size([256, 2048, 1, 1])  True
      60 backbone.fpn.inner_blocks.3.bias                   torch.Size([256])              True
      61 backbone.fpn.layer_blocks.0.weight                 torch.Size([256, 256, 3, 3])   True
      62 backbone.fpn.layer_blocks.0.bias                   torch.Size([256])              True
      63 backbone.fpn.layer_blocks.1.weight                 torch.Size([256, 256, 3, 3])   True
      64 backbone.fpn.layer_blocks.1.bias                   torch.Size([256])              True
      65 backbone.fpn.layer_blocks.2.weight                 torch.Size([256, 256, 3, 3])   True
      66 backbone.fpn.layer_blocks.2.bias                   torch.Size([256])              True
      67 backbone.fpn.layer_blocks.3.weight                 torch.Size([256, 256, 3, 3])   True
      68 backbone.fpn.layer_blocks.3.bias                   torch.Size([256])              True
      69 rpn.head.conv.weight                               torch.Size([256, 256, 3, 3])   True
      70 rpn.head.conv.bias                                 torch.Size([256])              True
      71 rpn.head.cls_logits.weight                         torch.Size([3, 256, 1, 1])     True
      72 rpn.head.cls_logits.bias                           torch.Size([3])                True
      73 rpn.head.bbox_pred.weight                          torch.Size([12, 256, 1, 1])    True
      74 rpn.head.bbox_pred.bias                            torch.Size([12])               True
      75 roi_heads.box_head.fc6.weight                      torch.Size([1024, 12544])      True
      76 roi_heads.box_head.fc6.bias                        torch.Size([1024])             True
      77 roi_heads.box_head.fc7.weight                      torch.Size([1024, 1024])       True
      78 roi_heads.box_head.fc7.bias                        torch.Size([1024])             True
      79 roi_heads.box_predictor.cls_score.weight           torch.Size([21, 1024])         True
      80 roi_heads.box_predictor.cls_score.bias             torch.Size([21])               True
      81 roi_heads.box_predictor.bbox_pred.weight           torch.Size([84, 1024])         True
      82 roi_heads.box_predictor.bbox_pred.bias             torch.Size([84])               True
    

    相关文章

      网友评论

          本文标题:torchvision 0.3 自带 resnet50 结构

          本文链接:https://www.haomeiwen.com/subject/ggcwbctx.html