EncoderDecoder(
  29.046 M, 100.000% Params, 198.083 GFLOPs, 100.000% FLOPs, 
  (backbone): UNet(
    28.95 M, 99.667% Params, 193.162 GFLOPs, 97.516% FLOPs, 
    (encoder): ModuleList(
      18.847 M, 64.887% Params, 68.325 GFLOPs, 34.493% FLOPs, 
      (0): Sequential(
        0.039 M, 0.134% Params, 10.217 GFLOPs, 5.158% FLOPs, 
        (0): BasicConvBlock(
          0.039 M, 0.134% Params, 10.217 GFLOPs, 5.158% FLOPs, 
          (convs): Sequential(
            0.039 M, 0.134% Params, 10.217 GFLOPs, 5.158% FLOPs, 
            (0): ConvModule(
              0.002 M, 0.006% Params, 0.503 GFLOPs, 0.254% FLOPs, 
              (conv): Conv2d(0.002 M, 0.006% Params, 0.453 GFLOPs, 0.229% FLOPs, 3, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.034 GFLOPs, 0.017% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, inplace=True)
            )
            (1): ConvModule(
              0.037 M, 0.127% Params, 9.714 GFLOPs, 4.904% FLOPs, 
              (conv): Conv2d(0.037 M, 0.127% Params, 9.664 GFLOPs, 4.879% FLOPs, 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.034 GFLOPs, 0.017% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, inplace=True)
            )
          )
        )
      )
      (1): Sequential(
        0.222 M, 0.763% Params, 14.563 GFLOPs, 7.352% FLOPs, 
        (0): MaxPool2d(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
        (1): BasicConvBlock(
          0.222 M, 0.763% Params, 14.546 GFLOPs, 7.343% FLOPs, 
          (convs): Sequential(
            0.222 M, 0.763% Params, 14.546 GFLOPs, 7.343% FLOPs, 
            (0): ConvModule(
              0.074 M, 0.255% Params, 4.857 GFLOPs, 2.452% FLOPs, 
              (conv): Conv2d(0.074 M, 0.254% Params, 4.832 GFLOPs, 2.439% FLOPs, 64, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.017 GFLOPs, 0.008% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.008 GFLOPs, 0.004% FLOPs, inplace=True)
            )
            (1): ConvModule(
              0.148 M, 0.509% Params, 9.689 GFLOPs, 4.891% FLOPs, 
              (conv): Conv2d(0.147 M, 0.508% Params, 9.664 GFLOPs, 4.879% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.017 GFLOPs, 0.008% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.008 GFLOPs, 0.004% FLOPs, inplace=True)
            )
          )
        )
      )
      (2): Sequential(
        0.886 M, 3.049% Params, 14.529 GFLOPs, 7.335% FLOPs, 
        (0): MaxPool2d(0.0 M, 0.000% Params, 0.008 GFLOPs, 0.004% FLOPs, kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
        (1): BasicConvBlock(
          0.886 M, 3.049% Params, 14.521 GFLOPs, 7.331% FLOPs, 
          (convs): Sequential(
            0.886 M, 3.049% Params, 14.521 GFLOPs, 7.331% FLOPs, 
            (0): ConvModule(
              0.295 M, 1.017% Params, 4.844 GFLOPs, 2.446% FLOPs, 
              (conv): Conv2d(0.295 M, 1.015% Params, 4.832 GFLOPs, 2.439% FLOPs, 128, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.002% Params, 0.008 GFLOPs, 0.004% FLOPs, 256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.002% FLOPs, inplace=True)
            )
            (1): ConvModule(
              0.59 M, 2.032% Params, 9.676 GFLOPs, 4.885% FLOPs, 
              (conv): Conv2d(0.59 M, 2.031% Params, 9.664 GFLOPs, 4.879% FLOPs, 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.002% Params, 0.008 GFLOPs, 0.004% FLOPs, 256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.002% FLOPs, inplace=True)
            )
          )
        )
      )
      (3): Sequential(
        3.541 M, 12.191% Params, 14.512 GFLOPs, 7.326% FLOPs, 
        (0): MaxPool2d(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.002% FLOPs, kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
        (1): BasicConvBlock(
          3.541 M, 12.191% Params, 14.508 GFLOPs, 7.324% FLOPs, 
          (convs): Sequential(
            3.541 M, 12.191% Params, 14.508 GFLOPs, 7.324% FLOPs, 
            (0): ConvModule(
              1.181 M, 4.065% Params, 4.838 GFLOPs, 2.442% FLOPs, 
              (conv): Conv2d(1.18 M, 4.061% Params, 4.832 GFLOPs, 2.439% FLOPs, 256, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.004% Params, 0.004 GFLOPs, 0.002% FLOPs, 512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.002 GFLOPs, 0.001% FLOPs, inplace=True)
            )
            (1): ConvModule(
              2.36 M, 8.126% Params, 9.67 GFLOPs, 4.882% FLOPs, 
              (conv): Conv2d(2.359 M, 8.123% Params, 9.664 GFLOPs, 4.879% FLOPs, 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.004% Params, 0.004 GFLOPs, 0.002% FLOPs, 512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.002 GFLOPs, 0.001% FLOPs, inplace=True)
            )
          )
        )
      )
      (4): Sequential(
        14.16 M, 48.749% Params, 14.504 GFLOPs, 7.322% FLOPs, 
        (0): MaxPool2d(0.0 M, 0.000% Params, 0.002 GFLOPs, 0.001% FLOPs, kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
        (1): BasicConvBlock(
          14.16 M, 48.749% Params, 14.502 GFLOPs, 7.321% FLOPs, 
          (convs): Sequential(
            14.16 M, 48.749% Params, 14.502 GFLOPs, 7.321% FLOPs, 
            (0): ConvModule(
              4.721 M, 16.252% Params, 4.835 GFLOPs, 2.441% FLOPs, 
              (conv): Conv2d(4.719 M, 16.245% Params, 4.832 GFLOPs, 2.439% FLOPs, 512, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.002 M, 0.007% Params, 0.002 GFLOPs, 0.001% FLOPs, 1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.001% FLOPs, inplace=True)
            )
            (1): ConvModule(
              9.439 M, 32.497% Params, 9.667 GFLOPs, 4.880% FLOPs, 
              (conv): Conv2d(9.437 M, 32.490% Params, 9.664 GFLOPs, 4.879% FLOPs, 1024, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.002 M, 0.007% Params, 0.002 GFLOPs, 0.001% FLOPs, 1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.001% FLOPs, inplace=True)
            )
          )
        )
      )
    )
    (decoder): ModuleList(
      10.102 M, 34.780% Params, 124.837 GFLOPs, 63.023% FLOPs, 
      (0): UpConvBlock(
        0.119 M, 0.410% Params, 31.29 GFLOPs, 15.796% FLOPs, 
        (conv_block): BasicConvBlock(
          0.111 M, 0.382% Params, 29.092 GFLOPs, 14.687% FLOPs, 
          (convs): Sequential(
            0.111 M, 0.382% Params, 29.092 GFLOPs, 14.687% FLOPs, 
            (0): ConvModule(
              0.074 M, 0.254% Params, 19.378 GFLOPs, 9.783% FLOPs, 
              (conv): Conv2d(0.074 M, 0.254% Params, 19.327 GFLOPs, 9.757% FLOPs, 128, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.034 GFLOPs, 0.017% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, inplace=True)
            )
            (1): ConvModule(
              0.037 M, 0.127% Params, 9.714 GFLOPs, 4.904% FLOPs, 
              (conv): Conv2d(0.037 M, 0.127% Params, 9.664 GFLOPs, 4.879% FLOPs, 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.034 GFLOPs, 0.017% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, inplace=True)
            )
          )
        )
        (upsample): InterpConv(
          0.008 M, 0.029% Params, 2.198 GFLOPs, 1.110% FLOPs, 
          (interp_upsample): Sequential(
            0.008 M, 0.029% Params, 2.198 GFLOPs, 1.110% FLOPs, 
            (0): Upsample(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
            (1): ConvModule(
              0.008 M, 0.029% Params, 2.198 GFLOPs, 1.110% FLOPs, 
              (conv): Conv2d(0.008 M, 0.028% Params, 2.147 GFLOPs, 1.084% FLOPs, 128, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.034 GFLOPs, 0.017% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, inplace=True)
            )
          )
        )
      )
      (1): UpConvBlock(
        0.476 M, 1.638% Params, 31.214 GFLOPs, 15.758% FLOPs, 
        (conv_block): BasicConvBlock(
          0.443 M, 1.525% Params, 29.041 GFLOPs, 14.661% FLOPs, 
          (convs): Sequential(
            0.443 M, 1.525% Params, 29.041 GFLOPs, 14.661% FLOPs, 
            (0): ConvModule(
              0.295 M, 1.016% Params, 19.353 GFLOPs, 9.770% FLOPs, 
              (conv): Conv2d(0.295 M, 1.015% Params, 19.327 GFLOPs, 9.757% FLOPs, 256, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.017 GFLOPs, 0.008% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.008 GFLOPs, 0.004% FLOPs, inplace=True)
            )
            (1): ConvModule(
              0.148 M, 0.509% Params, 9.689 GFLOPs, 4.891% FLOPs, 
              (conv): Conv2d(0.147 M, 0.508% Params, 9.664 GFLOPs, 4.879% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.017 GFLOPs, 0.008% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.008 GFLOPs, 0.004% FLOPs, inplace=True)
            )
          )
        )
        (upsample): InterpConv(
          0.033 M, 0.114% Params, 2.173 GFLOPs, 1.097% FLOPs, 
          (interp_upsample): Sequential(
            0.033 M, 0.114% Params, 2.173 GFLOPs, 1.097% FLOPs, 
            (0): Upsample(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
            (1): ConvModule(
              0.033 M, 0.114% Params, 2.173 GFLOPs, 1.097% FLOPs, 
              (conv): Conv2d(0.033 M, 0.113% Params, 2.147 GFLOPs, 1.084% FLOPs, 256, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.017 GFLOPs, 0.008% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.008 GFLOPs, 0.004% FLOPs, inplace=True)
            )
          )
        )
      )
      (2): UpConvBlock(
        1.902 M, 6.548% Params, 31.176 GFLOPs, 15.739% FLOPs, 
        (conv_block): BasicConvBlock(
          1.77 M, 6.095% Params, 29.016 GFLOPs, 14.649% FLOPs, 
          (convs): Sequential(
            1.77 M, 6.095% Params, 29.016 GFLOPs, 14.649% FLOPs, 
            (0): ConvModule(
              1.18 M, 4.063% Params, 19.34 GFLOPs, 9.764% FLOPs, 
              (conv): Conv2d(1.18 M, 4.061% Params, 19.327 GFLOPs, 9.757% FLOPs, 512, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.002% Params, 0.008 GFLOPs, 0.004% FLOPs, 256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.002% FLOPs, inplace=True)
            )
            (1): ConvModule(
              0.59 M, 2.032% Params, 9.676 GFLOPs, 4.885% FLOPs, 
              (conv): Conv2d(0.59 M, 2.031% Params, 9.664 GFLOPs, 4.879% FLOPs, 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.002% Params, 0.008 GFLOPs, 0.004% FLOPs, 256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.002% FLOPs, inplace=True)
            )
          )
        )
        (upsample): InterpConv(
          0.132 M, 0.453% Params, 2.16 GFLOPs, 1.090% FLOPs, 
          (interp_upsample): Sequential(
            0.132 M, 0.453% Params, 2.16 GFLOPs, 1.090% FLOPs, 
            (0): Upsample(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
            (1): ConvModule(
              0.132 M, 0.453% Params, 2.16 GFLOPs, 1.090% FLOPs, 
              (conv): Conv2d(0.131 M, 0.451% Params, 2.147 GFLOPs, 1.084% FLOPs, 512, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.002% Params, 0.008 GFLOPs, 0.004% FLOPs, 256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.002% FLOPs, inplace=True)
            )
          )
        )
      )
      (3): UpConvBlock(
        7.605 M, 26.183% Params, 31.157 GFLOPs, 15.729% FLOPs, 
        (conv_block): BasicConvBlock(
          7.08 M, 24.375% Params, 29.004 GFLOPs, 14.642% FLOPs, 
          (convs): Sequential(
            7.08 M, 24.375% Params, 29.004 GFLOPs, 14.642% FLOPs, 
            (0): ConvModule(
              4.72 M, 16.249% Params, 19.334 GFLOPs, 9.760% FLOPs, 
              (conv): Conv2d(4.719 M, 16.245% Params, 19.327 GFLOPs, 9.757% FLOPs, 1024, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.004% Params, 0.004 GFLOPs, 0.002% FLOPs, 512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.002 GFLOPs, 0.001% FLOPs, inplace=True)
            )
            (1): ConvModule(
              2.36 M, 8.126% Params, 9.67 GFLOPs, 4.882% FLOPs, 
              (conv): Conv2d(2.359 M, 8.123% Params, 9.664 GFLOPs, 4.879% FLOPs, 512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.004% Params, 0.004 GFLOPs, 0.002% FLOPs, 512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.002 GFLOPs, 0.001% FLOPs, inplace=True)
            )
          )
        )
        (upsample): InterpConv(
          0.525 M, 1.809% Params, 2.154 GFLOPs, 1.087% FLOPs, 
          (interp_upsample): Sequential(
            0.525 M, 1.809% Params, 2.154 GFLOPs, 1.087% FLOPs, 
            (0): Upsample(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
            (1): ConvModule(
              0.525 M, 1.809% Params, 2.154 GFLOPs, 1.087% FLOPs, 
              (conv): Conv2d(0.524 M, 1.805% Params, 2.147 GFLOPs, 1.084% FLOPs, 1024, 512, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.001 M, 0.004% Params, 0.004 GFLOPs, 0.002% FLOPs, 512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.002 GFLOPs, 0.001% FLOPs, inplace=True)
            )
          )
        )
      )
    )
  )
  init_cfg=[{'type': 'Kaiming', 'layer': 'Conv2d'}, {'type': 'Constant', 'val': 1, 'layer': ['_BatchNorm', 'GroupNorm']}]
  (decode_head): PSPHead(
    0.023 M, 0.078% Params, 4.92 GFLOPs, 2.484% FLOPs, input_transform=None, ignore_index=255, align_corners=False
    (loss_decode): ModuleList(
      0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, 
      (0): CrossEntropyLoss(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, avg_non_ignore=False)
      (1): DiceLoss(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
    )
    (conv_seg): Conv2d(0.0 M, 0.000% Params, 0.009 GFLOPs, 0.004% FLOPs, 16, 2, kernel_size=(1, 1), stride=(1, 1))
    (dropout): Dropout2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, p=0.1, inplace=False)
    (psp_modules): PPM(
      0.004 M, 0.015% Params, 0.067 GFLOPs, 0.034% FLOPs, 
      (0): Sequential(
        0.001 M, 0.004% Params, 0.017 GFLOPs, 0.008% FLOPs, 
        (0): AdaptiveAvgPool2d(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, output_size=1)
        (1): ConvModule(
          0.001 M, 0.004% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.001 M, 0.004% Params, 0.0 GFLOPs, 0.000% FLOPs, 64, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, 16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, inplace=True)
        )
      )
      (1): Sequential(
        0.001 M, 0.004% Params, 0.017 GFLOPs, 0.008% FLOPs, 
        (0): AdaptiveAvgPool2d(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, output_size=2)
        (1): ConvModule(
          0.001 M, 0.004% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.001 M, 0.004% Params, 0.0 GFLOPs, 0.000% FLOPs, 64, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, 16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, inplace=True)
        )
      )
      (2): Sequential(
        0.001 M, 0.004% Params, 0.017 GFLOPs, 0.008% FLOPs, 
        (0): AdaptiveAvgPool2d(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, output_size=3)
        (1): ConvModule(
          0.001 M, 0.004% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.001 M, 0.004% Params, 0.0 GFLOPs, 0.000% FLOPs, 64, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, 16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, inplace=True)
        )
      )
      (3): Sequential(
        0.001 M, 0.004% Params, 0.017 GFLOPs, 0.008% FLOPs, 
        (0): AdaptiveAvgPool2d(0.0 M, 0.000% Params, 0.017 GFLOPs, 0.008% FLOPs, output_size=6)
        (1): ConvModule(
          0.001 M, 0.004% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.001 M, 0.004% Params, 0.0 GFLOPs, 0.000% FLOPs, 64, 16, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, 16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, inplace=True)
        )
      )
    )
    (bottleneck): ConvModule(
      0.018 M, 0.064% Params, 4.844 GFLOPs, 2.446% FLOPs, 
      (conv): Conv2d(0.018 M, 0.063% Params, 4.832 GFLOPs, 2.439% FLOPs, 128, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
      (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.008 GFLOPs, 0.004% FLOPs, 16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (activate): ReLU(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.002% FLOPs, inplace=True)
    )
  )
  init_cfg={'type': 'Normal', 'std': 0.01, 'override': {'name': 'conv_seg'}}
  (auxiliary_head): FCNHead(
    0.074 M, 0.255% Params, 0.0 GFLOPs, 0.000% FLOPs, input_transform=None, ignore_index=255, align_corners=False
    (loss_decode): CrossEntropyLoss(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, avg_non_ignore=False)
    (conv_seg): Conv2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, 64, 2, kernel_size=(1, 1), stride=(1, 1))
    (dropout): Dropout2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, p=0.1, inplace=False)
    (convs): Sequential(
      0.074 M, 0.254% Params, 0.0 GFLOPs, 0.000% FLOPs, 
      (0): ConvModule(
        0.074 M, 0.254% Params, 0.0 GFLOPs, 0.000% FLOPs, 
        (conv): Conv2d(0.074 M, 0.254% Params, 0.0 GFLOPs, 0.000% FLOPs, 128, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, inplace=True)
      )
    )
  )
  init_cfg={'type': 'Normal', 'std': 0.01, 'override': {'name': 'conv_seg'}}
)
==============================
Input shape: (3, 512, 512)
Flops: 198.08 GFLOPs
Params: 29.05 M
==============================
!!!Please be cautious if you use the results in papers. You may need to check if all ops are supported and verify that the flops computation is correct.
