Syencil / mobile-yolov5-pruning-distillation

mobilev2-yolov5s剪枝、蒸馏,支持ncnn,tensorRT部署。ultra-light but better performence!
MIT License
821 stars 163 forks source link

大佬好,ignore_idx 是不是写错了 #68

Closed Veal98 closed 2 years ago

Veal98 commented 2 years ago

对于 mobile-yolov5s 来说,打印出来后,230 ,260,290 分别对应第一个 BottelneckCSP 最后一个 Conv2d、第二个 BottelneckCSP 第一个 Conv2d、290 第三个 BottelneckCSP 中的 bn 层 想问下大佬,既然想要忽略对于检测头的剪枝,那这里的 230 260 是不是有误,是不是得改成 BottelneckCSP 中的 bn 层

              from  n    params  module                                  arguments                     
  0             -1  1       928  models.common.Conv                      [3, 32, 3, 2]                 
  1             -1  1       896  models.common.InvertedResidual          [32, 16, 1, 1]                
  2             -1  1      5136  models.common.InvertedResidual          [16, 24, 2, 6]                
  3             -1  1      8832  models.common.InvertedResidual          [24, 24, 1, 6]                
  4             -1  1     10000  models.common.InvertedResidual          [24, 32, 2, 6]                
  5             -1  1     14848  models.common.InvertedResidual          [32, 32, 1, 6]                
  6             -1  1     14848  models.common.InvertedResidual          [32, 32, 1, 6]                
  7             -1  1     21056  models.common.InvertedResidual          [32, 64, 2, 6]                
  8             -1  1     54272  models.common.InvertedResidual          [64, 64, 1, 6]                
  9             -1  1     54272  models.common.InvertedResidual          [64, 64, 1, 6]                
 10             -1  1     54272  models.common.InvertedResidual          [64, 64, 1, 6]                
 11             -1  1     66624  models.common.InvertedResidual          [64, 96, 1, 6]                
 12             -1  1    118272  models.common.InvertedResidual          [96, 96, 1, 6]                
 13             -1  1    118272  models.common.InvertedResidual          [96, 96, 1, 6]                
 14             -1  1    155264  models.common.InvertedResidual          [96, 160, 2, 6]               
 15             -1  1    320000  models.common.InvertedResidual          [160, 160, 1, 6]              
 16             -1  1    320000  models.common.InvertedResidual          [160, 160, 1, 6]              
 17             -1  1    473920  models.common.InvertedResidual          [160, 320, 1, 6]              
 18             -1  1   1150464  models.common.BottleneckCSP             [320, 512, 1, False]          
 19             -1  1     38475  torch.nn.modules.conv.Conv2d            [512, 75, 1, 1]               
 20             -2  1         0  torch.nn.modules.upsampling.Upsample    [None, 2, 'nearest']          
 21       [-1, 13]  1         0  models.common.Concat                    [1]                           
 22             -1  1    156160  models.common.Conv                      [608, 256, 1, 1]              
 23             -1  1    313088  models.common.BottleneckCSP             [256, 256, 1, False]          
 24             -1  1     19275  torch.nn.modules.conv.Conv2d            [256, 75, 1, 1]               
 25             -2  1         0  torch.nn.modules.upsampling.Upsample    [None, 2, 'nearest']          
 26        [-1, 6]  1         0  models.common.Concat                    [1]                           
 27             -1  1     37120  models.common.Conv                      [288, 128, 1, 1]              
 28             -1  1     78720  models.common.BottleneckCSP             [128, 128, 1, False]          
 29             -1  1      9675  torch.nn.modules.conv.Conv2d            [128, 75, 1, 1]               
 30   [-1, 24, 19]  1         0  models.yolo.Detect                      [20, [[10, 13, 16, 30, 33, 23], [30, 61, 62, 45, 59, 119], [116, 90, 156, 198, 373, 326]]]
Model Summary: 213 layers, 3.61469e+06 parameters, 3.61469e+06 gradients

---------------------------------------
0 Model(
  (model): Sequential(
    (0): Conv(
      (conv): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
      (bn): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (1): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=32, bias=False)
          (1): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): Conv2d(32, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (2): BatchNorm2d(16, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (2): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=96, bias=False)
          (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (3): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=144, bias=False)
          (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(144, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (4): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=144, bias=False)
          (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(144, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (5): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
          (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (6): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
          (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (7): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=192, bias=False)
          (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(192, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (8): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
          (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (9): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
          (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (10): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
          (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (11): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
          (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (12): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
          (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (13): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
          (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (14): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (1): ConvBNReLU(
          (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=576, bias=False)
          (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(576, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(160, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (15): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (16): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (17): InvertedResidual(
      (conv): Sequential(
        (0): ConvBNReLU(
          (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (2): ReLU6(inplace=True)
        )
        (2): Conv2d(960, 320, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (3): BatchNorm2d(320, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      )
    )
    (18): BottleneckCSP(
      (cv1): Conv(
        (conv): Conv2d(320, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (cv2): Conv2d(320, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (cv3): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (cv4): Conv(
        (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (bn): BatchNorm2d(512, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (bn): BatchNorm2d(512, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (m): Sequential(
        (0): Bottleneck(
          (cv1): Conv(
            (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
            (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
            (act): LeakyReLU(negative_slope=0.1, inplace=True)
            (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
          )
          (cv2): Conv(
            (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
            (act): LeakyReLU(negative_slope=0.1, inplace=True)
            (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
          )
        )
      )
    )
    (19): Conv2d(512, 75, kernel_size=(1, 1), stride=(1, 1))
    (20): Upsample(scale_factor=2.0, mode=nearest)
    (21): Concat()
    (22): Conv(
      (conv): Conv2d(608, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (23): BottleneckCSP(
      (cv1): Conv(
        (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (cv2): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (cv3): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (cv4): Conv(
        (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (m): Sequential(
        (0): Bottleneck(
          (cv1): Conv(
            (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
            (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
            (act): LeakyReLU(negative_slope=0.1, inplace=True)
            (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
          )
          (cv2): Conv(
            (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
            (act): LeakyReLU(negative_slope=0.1, inplace=True)
            (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
          )
        )
      )
    )
    (24): Conv2d(256, 75, kernel_size=(1, 1), stride=(1, 1))
    (25): Upsample(scale_factor=2.0, mode=nearest)
    (26): Concat()
    (27): Conv(
      (conv): Conv2d(288, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (28): BottleneckCSP(
      (cv1): Conv(
        (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (cv2): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (cv3): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (cv4): Conv(
        (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (m): Sequential(
        (0): Bottleneck(
          (cv1): Conv(
            (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
            (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
            (act): LeakyReLU(negative_slope=0.1, inplace=True)
            (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
          )
          (cv2): Conv(
            (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
            (act): LeakyReLU(negative_slope=0.1, inplace=True)
            (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
          )
        )
      )
    )
    (29): Conv2d(128, 75, kernel_size=(1, 1), stride=(1, 1))
    (30): Detect()
  )
)
1 Sequential(
  (0): Conv(
    (conv): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
    (bn): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (1): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=32, bias=False)
        (1): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): Conv2d(32, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (2): BatchNorm2d(16, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (2): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=96, bias=False)
        (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (3): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=144, bias=False)
        (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(144, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (4): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=144, bias=False)
        (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(144, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (5): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
        (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (6): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
        (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (7): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=192, bias=False)
        (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(192, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (8): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
        (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (9): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
        (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (10): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
        (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (11): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
        (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (12): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
        (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (13): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
        (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (14): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (1): ConvBNReLU(
        (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=576, bias=False)
        (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(576, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(160, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (15): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (16): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (17): InvertedResidual(
    (conv): Sequential(
      (0): ConvBNReLU(
        (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (2): ReLU6(inplace=True)
      )
      (2): Conv2d(960, 320, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (3): BatchNorm2d(320, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    )
  )
  (18): BottleneckCSP(
    (cv1): Conv(
      (conv): Conv2d(320, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (cv2): Conv2d(320, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (cv3): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (cv4): Conv(
      (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(512, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (bn): BatchNorm2d(512, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (m): Sequential(
      (0): Bottleneck(
        (cv1): Conv(
          (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (act): LeakyReLU(negative_slope=0.1, inplace=True)
          (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (cv2): Conv(
          (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (act): LeakyReLU(negative_slope=0.1, inplace=True)
          (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
      )
    )
  )
  (19): Conv2d(512, 75, kernel_size=(1, 1), stride=(1, 1))
  (20): Upsample(scale_factor=2.0, mode=nearest)
  (21): Concat()
  (22): Conv(
    (conv): Conv2d(608, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (23): BottleneckCSP(
    (cv1): Conv(
      (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (cv2): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (cv3): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (cv4): Conv(
      (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (m): Sequential(
      (0): Bottleneck(
        (cv1): Conv(
          (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (act): LeakyReLU(negative_slope=0.1, inplace=True)
          (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (cv2): Conv(
          (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (act): LeakyReLU(negative_slope=0.1, inplace=True)
          (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
      )
    )
  )
  (24): Conv2d(256, 75, kernel_size=(1, 1), stride=(1, 1))
  (25): Upsample(scale_factor=2.0, mode=nearest)
  (26): Concat()
  (27): Conv(
    (conv): Conv2d(288, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (28): BottleneckCSP(
    (cv1): Conv(
      (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (cv2): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (cv3): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (cv4): Conv(
      (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (m): Sequential(
      (0): Bottleneck(
        (cv1): Conv(
          (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (act): LeakyReLU(negative_slope=0.1, inplace=True)
          (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
        (cv2): Conv(
          (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
          (act): LeakyReLU(negative_slope=0.1, inplace=True)
          (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
        )
      )
    )
  )
  (29): Conv2d(128, 75, kernel_size=(1, 1), stride=(1, 1))
  (30): Detect()
)
2 Conv(
  (conv): Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
  (bn): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
3 Conv2d(3, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
4 BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
5 LeakyReLU(negative_slope=0.1, inplace=True)
6 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
7 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=32, bias=False)
      (1): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): Conv2d(32, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (2): BatchNorm2d(16, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
8 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=32, bias=False)
    (1): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): Conv2d(32, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (2): BatchNorm2d(16, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
9 ConvBNReLU(
  (0): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=32, bias=False)
  (1): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
10 Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=32, bias=False)
11 BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
12 ReLU6(inplace=True)
13 Conv2d(32, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
14 BatchNorm2d(16, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
15 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=96, bias=False)
      (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
16 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=96, bias=False)
    (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
17 ConvBNReLU(
  (0): Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
18 Conv2d(16, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
19 BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
20 ReLU6(inplace=True)
21 ConvBNReLU(
  (0): Conv2d(96, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=96, bias=False)
  (1): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
22 Conv2d(96, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=96, bias=False)
23 BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
24 ReLU6(inplace=True)
25 Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
26 BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
27 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=144, bias=False)
      (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(144, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
28 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=144, bias=False)
    (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(144, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
29 ConvBNReLU(
  (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
30 Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
31 BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
32 ReLU6(inplace=True)
33 ConvBNReLU(
  (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=144, bias=False)
  (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
34 Conv2d(144, 144, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=144, bias=False)
35 BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
36 ReLU6(inplace=True)
37 Conv2d(144, 24, kernel_size=(1, 1), stride=(1, 1), bias=False)
38 BatchNorm2d(24, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
39 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=144, bias=False)
      (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(144, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
40 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=144, bias=False)
    (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(144, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
41 ConvBNReLU(
  (0): Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
42 Conv2d(24, 144, kernel_size=(1, 1), stride=(1, 1), bias=False)
43 BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
44 ReLU6(inplace=True)
45 ConvBNReLU(
  (0): Conv2d(144, 144, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=144, bias=False)
  (1): BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
46 Conv2d(144, 144, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=144, bias=False)
47 BatchNorm2d(144, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
48 ReLU6(inplace=True)
49 Conv2d(144, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
50 BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
51 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
      (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
52 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
    (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
53 ConvBNReLU(
  (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
54 Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
55 BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
56 ReLU6(inplace=True)
57 ConvBNReLU(
  (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
  (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
58 Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
59 BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
60 ReLU6(inplace=True)
61 Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
62 BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
63 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
      (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
64 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
    (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
65 ConvBNReLU(
  (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
66 Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
67 BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
68 ReLU6(inplace=True)
69 ConvBNReLU(
  (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
  (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
70 Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
71 BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
72 ReLU6(inplace=True)
73 Conv2d(192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
74 BatchNorm2d(32, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
75 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=192, bias=False)
      (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(192, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
76 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=192, bias=False)
    (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(192, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
77 ConvBNReLU(
  (0): Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
78 Conv2d(32, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
79 BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
80 ReLU6(inplace=True)
81 ConvBNReLU(
  (0): Conv2d(192, 192, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=192, bias=False)
  (1): BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
82 Conv2d(192, 192, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=192, bias=False)
83 BatchNorm2d(192, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
84 ReLU6(inplace=True)
85 Conv2d(192, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
86 BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
87 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
      (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
88 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
    (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
89 ConvBNReLU(
  (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
90 Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
91 BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
92 ReLU6(inplace=True)
93 ConvBNReLU(
  (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
  (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
94 Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
95 BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
96 ReLU6(inplace=True)
97 Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
98 BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
99 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
      (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
100 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
    (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
101 ConvBNReLU(
  (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
102 Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
103 BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
104 ReLU6(inplace=True)
105 ConvBNReLU(
  (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
  (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
106 Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
107 BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
108 ReLU6(inplace=True)
109 Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
110 BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
111 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
      (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
112 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
    (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
113 ConvBNReLU(
  (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
114 Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
115 BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
116 ReLU6(inplace=True)
117 ConvBNReLU(
  (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
  (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
118 Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
119 BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
120 ReLU6(inplace=True)
121 Conv2d(384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
122 BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
123 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
      (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
124 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
    (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
125 ConvBNReLU(
  (0): Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
126 Conv2d(64, 384, kernel_size=(1, 1), stride=(1, 1), bias=False)
127 BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
128 ReLU6(inplace=True)
129 ConvBNReLU(
  (0): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
  (1): BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
130 Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
131 BatchNorm2d(384, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
132 ReLU6(inplace=True)
133 Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
134 BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
135 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
      (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
136 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
    (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
137 ConvBNReLU(
  (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
138 Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
139 BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
140 ReLU6(inplace=True)
141 ConvBNReLU(
  (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
  (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
142 Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
143 BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
144 ReLU6(inplace=True)
145 Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
146 BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
147 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
      (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
148 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
    (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
149 ConvBNReLU(
  (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
150 Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
151 BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
152 ReLU6(inplace=True)
153 ConvBNReLU(
  (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
  (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
154 Conv2d(576, 576, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=576, bias=False)
155 BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
156 ReLU6(inplace=True)
157 Conv2d(576, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
158 BatchNorm2d(96, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
159 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (1): ConvBNReLU(
      (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=576, bias=False)
      (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(576, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(160, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
160 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (1): ConvBNReLU(
    (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=576, bias=False)
    (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(576, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(160, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
161 ConvBNReLU(
  (0): Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
162 Conv2d(96, 576, kernel_size=(1, 1), stride=(1, 1), bias=False)
163 BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
164 ReLU6(inplace=True)
165 ConvBNReLU(
  (0): Conv2d(576, 576, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=576, bias=False)
  (1): BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
166 Conv2d(576, 576, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=576, bias=False)
167 BatchNorm2d(576, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
168 ReLU6(inplace=True)
169 Conv2d(576, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
170 BatchNorm2d(160, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
171 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
172 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
173 ConvBNReLU(
  (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
174 Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
175 BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
176 ReLU6(inplace=True)
177 ConvBNReLU(
  (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
  (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
178 Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
179 BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
180 ReLU6(inplace=True)
181 Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
182 BatchNorm2d(160, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
183 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
184 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
185 ConvBNReLU(
  (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
186 Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
187 BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
188 ReLU6(inplace=True)
189 ConvBNReLU(
  (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
  (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
190 Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
191 BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
192 ReLU6(inplace=True)
193 Conv2d(960, 160, kernel_size=(1, 1), stride=(1, 1), bias=False)
194 BatchNorm2d(160, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
195 InvertedResidual(
  (conv): Sequential(
    (0): ConvBNReLU(
      (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (2): ReLU6(inplace=True)
    )
    (2): Conv2d(960, 320, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (3): BatchNorm2d(320, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  )
)
196 Sequential(
  (0): ConvBNReLU(
    (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, 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=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (2): ReLU6(inplace=True)
  )
  (2): Conv2d(960, 320, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (3): BatchNorm2d(320, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
)
197 ConvBNReLU(
  (0): Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
198 Conv2d(160, 960, kernel_size=(1, 1), stride=(1, 1), bias=False)
199 BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
200 ReLU6(inplace=True)
201 ConvBNReLU(
  (0): Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
  (1): BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (2): ReLU6(inplace=True)
)
202 Conv2d(960, 960, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=960, bias=False)
203 BatchNorm2d(960, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
204 ReLU6(inplace=True)
205 Conv2d(960, 320, kernel_size=(1, 1), stride=(1, 1), bias=False)
206 BatchNorm2d(320, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
207 BottleneckCSP(
  (cv1): Conv(
    (conv): Conv2d(320, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (cv2): Conv2d(320, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (cv3): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (cv4): Conv(
    (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(512, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (bn): BatchNorm2d(512, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (m): Sequential(
    (0): Bottleneck(
      (cv1): Conv(
        (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (cv2): Conv(
        (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
    )
  )
)
208 Conv(
  (conv): Conv2d(320, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
209 Conv2d(320, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
210 BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
211 LeakyReLU(negative_slope=0.1, inplace=True)
212 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
213 Conv2d(320, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
214 Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
215 Conv(
  (conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(512, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
216 Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
217 BatchNorm2d(512, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
218 LeakyReLU(negative_slope=0.1, inplace=True)
219 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
220 BatchNorm2d(512, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
221 LeakyReLU(negative_slope=0.1, inplace=True)
222 Sequential(
  (0): Bottleneck(
    (cv1): Conv(
      (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (cv2): Conv(
      (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
      (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
  )
)
223 Bottleneck(
  (cv1): Conv(
    (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (cv2): Conv(
    (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
    (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
)
224 Conv(
  (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
225 Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
226 BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
227 LeakyReLU(negative_slope=0.1, inplace=True)
228 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
229 Conv(
  (conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
  (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
230 Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
231 BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
232 LeakyReLU(negative_slope=0.1, inplace=True)
233 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
234 Conv2d(512, 75, kernel_size=(1, 1), stride=(1, 1))
235 Upsample(scale_factor=2.0, mode=nearest)
236 Concat()
237 Conv(
  (conv): Conv2d(608, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
238 Conv2d(608, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
239 BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
240 LeakyReLU(negative_slope=0.1, inplace=True)
241 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
242 BottleneckCSP(
  (cv1): Conv(
    (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (cv2): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (cv3): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (cv4): Conv(
    (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (m): Sequential(
    (0): Bottleneck(
      (cv1): Conv(
        (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (cv2): Conv(
        (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
    )
  )
)
243 Conv(
  (conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
244 Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
245 BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
246 LeakyReLU(negative_slope=0.1, inplace=True)
247 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
248 Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
249 Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
250 Conv(
  (conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
251 Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
252 BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
253 LeakyReLU(negative_slope=0.1, inplace=True)
254 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
255 BatchNorm2d(256, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
256 LeakyReLU(negative_slope=0.1, inplace=True)
257 Sequential(
  (0): Bottleneck(
    (cv1): Conv(
      (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (cv2): Conv(
      (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
      (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
  )
)
258 Bottleneck(
  (cv1): Conv(
    (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (cv2): Conv(
    (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
    (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
)
259 Conv(
  (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
260 Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
261 BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
262 LeakyReLU(negative_slope=0.1, inplace=True)
263 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
264 Conv(
  (conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
  (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
265 Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
266 BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
267 LeakyReLU(negative_slope=0.1, inplace=True)
268 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
269 Conv2d(256, 75, kernel_size=(1, 1), stride=(1, 1))
270 Upsample(scale_factor=2.0, mode=nearest)
271 Concat()
272 Conv(
  (conv): Conv2d(288, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
273 Conv2d(288, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
274 BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
275 LeakyReLU(negative_slope=0.1, inplace=True)
276 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
277 BottleneckCSP(
  (cv1): Conv(
    (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (cv2): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (cv3): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (cv4): Conv(
    (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (m): Sequential(
    (0): Bottleneck(
      (cv1): Conv(
        (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
      (cv2): Conv(
        (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
        (act): LeakyReLU(negative_slope=0.1, inplace=True)
        (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
      )
    )
  )
)
278 Conv(
  (conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
279 Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
280 BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
281 LeakyReLU(negative_slope=0.1, inplace=True)
282 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
283 Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
284 Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
285 Conv(
  (conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
286 Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
287 BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
288 LeakyReLU(negative_slope=0.1, inplace=True)
289 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
290 BatchNorm2d(128, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
291 LeakyReLU(negative_slope=0.1, inplace=True)
292 Sequential(
  (0): Bottleneck(
    (cv1): Conv(
      (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
    (cv2): Conv(
      (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
      (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
      (act): LeakyReLU(negative_slope=0.1, inplace=True)
      (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
    )
  )
)
293 Bottleneck(
  (cv1): Conv(
    (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (cv2): Conv(
    (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
    (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
    (act): LeakyReLU(negative_slope=0.1, inplace=True)
    (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
)
294 Conv(
  (conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
295 Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
296 BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
297 LeakyReLU(negative_slope=0.1, inplace=True)
298 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
299 Conv(
  (conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
  (bn): BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
  (act): LeakyReLU(negative_slope=0.1, inplace=True)
  (maxpool): MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
)
300 Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
301 BatchNorm2d(64, eps=0.0001, momentum=0.03, affine=True, track_running_stats=True)
302 LeakyReLU(negative_slope=0.1, inplace=True)
303 MaxPool2d(kernel_size=3, stride=2, padding=0, dilation=1, ceil_mode=False)
304 Conv2d(128, 75, kernel_size=(1, 1), stride=(1, 1))
305 Detect()
Syencil commented 2 years ago

和你用的cfg还有当前的环境有一定关系吧 可能打印出来的idx不同 只要保证是三个head的输出层不被裁剪就行