EncoderDecoder(
  14.764 M, 100.000% Params, 12.307 GFLOPs, 100.000% FLOPs, 
  (backbone): BiSeNetV2(
    2.158 M, 14.615% Params, 7.454 GFLOPs, 60.568% FLOPs, 
    (detail): DetailBranch(
      0.519 M, 3.517% Params, 5.89 GFLOPs, 47.863% FLOPs, 
      (detail_branch): ModuleList(
        0.519 M, 3.517% Params, 5.89 GFLOPs, 47.863% FLOPs, 
        (0): Sequential(
          0.039 M, 0.263% Params, 2.554 GFLOPs, 20.756% FLOPs, 
          (0): ConvModule(
            0.002 M, 0.013% Params, 0.126 GFLOPs, 1.022% FLOPs, 
            (conv): Conv2d(0.002 M, 0.012% Params, 0.113 GFLOPs, 0.920% FLOPs, 3, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.008 GFLOPs, 0.068% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (activate): ReLU(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.034% FLOPs, inplace=True)
          )
          (1): ConvModule(
            0.037 M, 0.251% Params, 2.429 GFLOPs, 19.733% FLOPs, 
            (conv): Conv2d(0.037 M, 0.250% Params, 2.416 GFLOPs, 19.631% FLOPs, 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.008 GFLOPs, 0.068% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (activate): ReLU(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.034% FLOPs, inplace=True)
          )
        )
        (1): Sequential(
          0.111 M, 0.752% Params, 1.821 GFLOPs, 14.800% FLOPs, 
          (0): ConvModule(
            0.037 M, 0.251% Params, 0.607 GFLOPs, 4.933% FLOPs, 
            (conv): Conv2d(0.037 M, 0.250% Params, 0.604 GFLOPs, 4.908% FLOPs, 64, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.002 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.001 GFLOPs, 0.009% FLOPs, inplace=True)
          )
          (1): ConvModule(
            0.037 M, 0.251% Params, 0.607 GFLOPs, 4.933% FLOPs, 
            (conv): Conv2d(0.037 M, 0.250% Params, 0.604 GFLOPs, 4.908% FLOPs, 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.002 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.001 GFLOPs, 0.009% FLOPs, inplace=True)
          )
          (2): ConvModule(
            0.037 M, 0.251% Params, 0.607 GFLOPs, 4.933% FLOPs, 
            (conv): Conv2d(0.037 M, 0.250% Params, 0.604 GFLOPs, 4.908% FLOPs, 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.002 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.001 GFLOPs, 0.009% FLOPs, inplace=True)
          )
        )
        (2): Sequential(
          0.369 M, 2.502% Params, 1.515 GFLOPs, 12.308% FLOPs, 
          (0): ConvModule(
            0.074 M, 0.501% Params, 0.304 GFLOPs, 2.467% FLOPs, 
            (conv): Conv2d(0.074 M, 0.499% Params, 0.302 GFLOPs, 2.454% FLOPs, 64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.001 GFLOPs, 0.009% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (activate): ReLU(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.004% FLOPs, inplace=True)
          )
          (1): ConvModule(
            0.148 M, 1.001% Params, 0.606 GFLOPs, 4.921% FLOPs, 
            (conv): Conv2d(0.147 M, 0.999% Params, 0.604 GFLOPs, 4.908% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.001 GFLOPs, 0.009% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (activate): ReLU(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.004% FLOPs, inplace=True)
          )
          (2): ConvModule(
            0.148 M, 1.001% Params, 0.606 GFLOPs, 4.921% FLOPs, 
            (conv): Conv2d(0.147 M, 0.999% Params, 0.604 GFLOPs, 4.908% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.001 GFLOPs, 0.009% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (activate): ReLU(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.004% FLOPs, inplace=True)
          )
        )
      )
    )
    (semantic): SemanticBranch(
      1.16 M, 7.854% Params, 0.691 GFLOPs, 5.613% FLOPs, 
      (stage1): StemBlock(
        0.006 M, 0.044% Params, 0.138 GFLOPs, 1.125% FLOPs, 
        (conv_first): ConvModule(
          0.0 M, 0.003% Params, 0.031 GFLOPs, 0.256% FLOPs, 
          (conv): Conv2d(0.0 M, 0.003% Params, 0.028 GFLOPs, 0.230% FLOPs, 3, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.002 GFLOPs, 0.017% FLOPs, 16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (activate): ReLU(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.009% FLOPs, inplace=True)
        )
        (convs): Sequential(
          0.001 M, 0.009% Params, 0.03 GFLOPs, 0.241% FLOPs, 
          (0): ConvModule(
            0.0 M, 0.001% Params, 0.01 GFLOPs, 0.081% FLOPs, 
            (conv): Conv2d(0.0 M, 0.001% Params, 0.008 GFLOPs, 0.068% FLOPs, 16, 8, kernel_size=(1, 1), stride=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.009% FLOPs, 8, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (activate): ReLU(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.004% FLOPs, inplace=True)
          )
          (1): ConvModule(
            0.001 M, 0.008% Params, 0.02 GFLOPs, 0.160% FLOPs, 
            (conv): Conv2d(0.001 M, 0.008% Params, 0.019 GFLOPs, 0.153% FLOPs, 8, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.001 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.0 GFLOPs, 0.002% FLOPs, inplace=True)
          )
        )
        (pool): MaxPool2d(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.009% FLOPs, kernel_size=3, stride=2, padding=1, dilation=1, ceil_mode=False)
        (fuse_last): ConvModule(
          0.005 M, 0.031% Params, 0.076 GFLOPs, 0.620% FLOPs, 
          (conv): Conv2d(0.005 M, 0.031% Params, 0.075 GFLOPs, 0.613% FLOPs, 32, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.001 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.0 GFLOPs, 0.002% FLOPs, inplace=True)
        )
      )
      (stage2): Sequential(
        0.026 M, 0.176% Params, 0.137 GFLOPs, 1.111% FLOPs, 
        (0): GELayer(
          0.008 M, 0.056% Params, 0.064 GFLOPs, 0.517% FLOPs, 
          (conv1): ConvModule(
            0.002 M, 0.016% Params, 0.039 GFLOPs, 0.313% FLOPs, 
            (conv): Conv2d(0.002 M, 0.016% Params, 0.038 GFLOPs, 0.307% FLOPs, 16, 16, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.001 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.0 GFLOPs, 0.002% FLOPs, inplace=True)
          )
          (dwconv): Sequential(
            0.002 M, 0.014% Params, 0.009 GFLOPs, 0.073% FLOPs, 
            (0): ConvModule(
              0.001 M, 0.007% Params, 0.004 GFLOPs, 0.035% FLOPs, 
              (conv): Conv2d(0.001 M, 0.006% Params, 0.004 GFLOPs, 0.029% FLOPs, 16, 96, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=16, bias=False)
              (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.001 GFLOPs, 0.006% FLOPs, 96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
            (1): ConvModule(
              0.001 M, 0.007% Params, 0.005 GFLOPs, 0.038% FLOPs, 
              (conv): Conv2d(0.001 M, 0.006% Params, 0.004 GFLOPs, 0.029% FLOPs, 96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=96, bias=False)
              (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.001 GFLOPs, 0.006% FLOPs, 96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.003% FLOPs, inplace=True)
            )
          )
          (shortcut): Sequential(
            0.001 M, 0.005% Params, 0.003 GFLOPs, 0.025% FLOPs, 
            (0): DepthwiseSeparableConvModule(
              0.001 M, 0.005% Params, 0.003 GFLOPs, 0.025% FLOPs, 
              (depthwise_conv): ConvModule(
                0.0 M, 0.001% Params, 0.001 GFLOPs, 0.006% FLOPs, 
                (conv): Conv2d(0.0 M, 0.001% Params, 0.001 GFLOPs, 0.005% FLOPs, 16, 16, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=16, bias=False)
                (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, 16, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              )
              (pointwise_conv): ConvModule(
                0.001 M, 0.004% Params, 0.002 GFLOPs, 0.019% FLOPs, 
                (conv): Conv2d(0.001 M, 0.003% Params, 0.002 GFLOPs, 0.017% FLOPs, 16, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.002% FLOPs, 32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              )
            )
          )
          (conv2): Sequential(
            0.003 M, 0.021% Params, 0.013 GFLOPs, 0.104% FLOPs, 
            (0): ConvModule(
              0.003 M, 0.021% Params, 0.013 GFLOPs, 0.104% FLOPs, 
              (conv): Conv2d(0.003 M, 0.021% Params, 0.013 GFLOPs, 0.102% FLOPs, 96, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.002% FLOPs, 32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
          )
          (act): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, )
        )
        (1): GELayer(
          0.018 M, 0.119% Params, 0.073 GFLOPs, 0.594% FLOPs, 
          (conv1): ConvModule(
            0.009 M, 0.063% Params, 0.038 GFLOPs, 0.310% FLOPs, 
            (conv): Conv2d(0.009 M, 0.062% Params, 0.038 GFLOPs, 0.307% FLOPs, 32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.002% FLOPs, 32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, inplace=True)
          )
          (dwconv): Sequential(
            0.002 M, 0.014% Params, 0.009 GFLOPs, 0.077% FLOPs, 
            (0): ConvModule(
              0.002 M, 0.014% Params, 0.009 GFLOPs, 0.077% FLOPs, 
              (conv): Conv2d(0.002 M, 0.012% Params, 0.007 GFLOPs, 0.058% FLOPs, 32, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=32, bias=False)
              (bn): BatchNorm2d(0.0 M, 0.003% Params, 0.002 GFLOPs, 0.013% FLOPs, 192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.006% FLOPs, inplace=True)
            )
          )
          (conv2): Sequential(
            0.006 M, 0.042% Params, 0.025 GFLOPs, 0.207% FLOPs, 
            (0): ConvModule(
              0.006 M, 0.042% Params, 0.025 GFLOPs, 0.207% FLOPs, 
              (conv): Conv2d(0.006 M, 0.042% Params, 0.025 GFLOPs, 0.204% FLOPs, 192, 32, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.002% FLOPs, 32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
          )
          (act): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, )
        )
      )
      (stage3): Sequential(
        0.094 M, 0.639% Params, 0.126 GFLOPs, 1.024% FLOPs, 
        (0): GELayer(
          0.028 M, 0.193% Params, 0.058 GFLOPs, 0.472% FLOPs, 
          (conv1): ConvModule(
            0.009 M, 0.063% Params, 0.038 GFLOPs, 0.310% FLOPs, 
            (conv): Conv2d(0.009 M, 0.062% Params, 0.038 GFLOPs, 0.307% FLOPs, 32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.002% FLOPs, 32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, inplace=True)
          )
          (dwconv): Sequential(
            0.004 M, 0.029% Params, 0.005 GFLOPs, 0.037% FLOPs, 
            (0): ConvModule(
              0.002 M, 0.014% Params, 0.002 GFLOPs, 0.018% FLOPs, 
              (conv): Conv2d(0.002 M, 0.012% Params, 0.002 GFLOPs, 0.014% FLOPs, 32, 192, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=32, bias=False)
              (bn): BatchNorm2d(0.0 M, 0.003% Params, 0.0 GFLOPs, 0.003% FLOPs, 192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
            (1): ConvModule(
              0.002 M, 0.014% Params, 0.002 GFLOPs, 0.019% FLOPs, 
              (conv): Conv2d(0.002 M, 0.012% Params, 0.002 GFLOPs, 0.014% FLOPs, 192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=192, bias=False)
              (bn): BatchNorm2d(0.0 M, 0.003% Params, 0.0 GFLOPs, 0.003% FLOPs, 192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.002% FLOPs, inplace=True)
            )
          )
          (shortcut): Sequential(
            0.003 M, 0.017% Params, 0.003 GFLOPs, 0.021% FLOPs, 
            (0): DepthwiseSeparableConvModule(
              0.003 M, 0.017% Params, 0.003 GFLOPs, 0.021% FLOPs, 
              (depthwise_conv): ConvModule(
                0.0 M, 0.002% Params, 0.0 GFLOPs, 0.003% FLOPs, 
                (conv): Conv2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.002% FLOPs, 32, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=32, bias=False)
                (bn): BatchNorm2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, 32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              )
              (pointwise_conv): ConvModule(
                0.002 M, 0.015% Params, 0.002 GFLOPs, 0.018% FLOPs, 
                (conv): Conv2d(0.002 M, 0.014% Params, 0.002 GFLOPs, 0.017% FLOPs, 32, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.0 GFLOPs, 0.001% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              )
            )
          )
          (conv2): Sequential(
            0.012 M, 0.084% Params, 0.013 GFLOPs, 0.103% FLOPs, 
            (0): ConvModule(
              0.012 M, 0.084% Params, 0.013 GFLOPs, 0.103% FLOPs, 
              (conv): Conv2d(0.012 M, 0.083% Params, 0.013 GFLOPs, 0.102% FLOPs, 192, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.0 GFLOPs, 0.001% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
          )
          (act): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, )
        )
        (1): GELayer(
          0.066 M, 0.447% Params, 0.068 GFLOPs, 0.553% FLOPs, 
          (conv1): ConvModule(
            0.037 M, 0.251% Params, 0.038 GFLOPs, 0.308% FLOPs, 
            (conv): Conv2d(0.037 M, 0.250% Params, 0.038 GFLOPs, 0.307% FLOPs, 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.0 GFLOPs, 0.001% 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.001% FLOPs, inplace=True)
          )
          (dwconv): Sequential(
            0.004 M, 0.029% Params, 0.005 GFLOPs, 0.038% FLOPs, 
            (0): ConvModule(
              0.004 M, 0.029% Params, 0.005 GFLOPs, 0.038% FLOPs, 
              (conv): Conv2d(0.003 M, 0.023% Params, 0.004 GFLOPs, 0.029% FLOPs, 64, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=64, bias=False)
              (bn): BatchNorm2d(0.001 M, 0.005% Params, 0.001 GFLOPs, 0.006% FLOPs, 384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.003% FLOPs, inplace=True)
            )
          )
          (conv2): Sequential(
            0.025 M, 0.167% Params, 0.025 GFLOPs, 0.206% FLOPs, 
            (0): ConvModule(
              0.025 M, 0.167% Params, 0.025 GFLOPs, 0.206% FLOPs, 
              (conv): Conv2d(0.025 M, 0.166% Params, 0.025 GFLOPs, 0.204% FLOPs, 384, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.0 GFLOPs, 0.001% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
          )
          (act): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, )
        )
      )
      (stage4): Sequential(
        0.868 M, 5.880% Params, 0.252 GFLOPs, 2.045% FLOPs, 
        (0): GELayer(
          0.104 M, 0.704% Params, 0.055 GFLOPs, 0.449% FLOPs, 
          (conv1): ConvModule(
            0.037 M, 0.251% Params, 0.038 GFLOPs, 0.308% FLOPs, 
            (conv): Conv2d(0.037 M, 0.250% Params, 0.038 GFLOPs, 0.307% FLOPs, 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.0 GFLOPs, 0.001% 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.001% FLOPs, inplace=True)
          )
          (dwconv): Sequential(
            0.008 M, 0.057% Params, 0.002 GFLOPs, 0.018% FLOPs, 
            (0): ConvModule(
              0.004 M, 0.029% Params, 0.001 GFLOPs, 0.009% FLOPs, 
              (conv): Conv2d(0.003 M, 0.023% Params, 0.001 GFLOPs, 0.007% FLOPs, 64, 384, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=64, bias=False)
              (bn): BatchNorm2d(0.001 M, 0.005% Params, 0.0 GFLOPs, 0.002% FLOPs, 384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
            (1): ConvModule(
              0.004 M, 0.029% Params, 0.001 GFLOPs, 0.010% FLOPs, 
              (conv): Conv2d(0.003 M, 0.023% Params, 0.001 GFLOPs, 0.007% FLOPs, 384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=384, bias=False)
              (bn): BatchNorm2d(0.001 M, 0.005% Params, 0.0 GFLOPs, 0.002% FLOPs, 384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, inplace=True)
            )
          )
          (shortcut): Sequential(
            0.009 M, 0.062% Params, 0.002 GFLOPs, 0.019% FLOPs, 
            (0): DepthwiseSeparableConvModule(
              0.009 M, 0.062% Params, 0.002 GFLOPs, 0.019% FLOPs, 
              (depthwise_conv): ConvModule(
                0.001 M, 0.005% Params, 0.0 GFLOPs, 0.001% FLOPs, 
                (conv): Conv2d(0.001 M, 0.004% Params, 0.0 GFLOPs, 0.001% FLOPs, 64, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), groups=64, bias=False)
                (bn): BatchNorm2d(0.0 M, 0.001% Params, 0.0 GFLOPs, 0.000% FLOPs, 64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              )
              (pointwise_conv): ConvModule(
                0.008 M, 0.057% Params, 0.002 GFLOPs, 0.018% FLOPs, 
                (conv): Conv2d(0.008 M, 0.055% Params, 0.002 GFLOPs, 0.017% FLOPs, 64, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
                (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              )
            )
          )
          (conv2): Sequential(
            0.049 M, 0.335% Params, 0.013 GFLOPs, 0.103% FLOPs, 
            (0): ConvModule(
              0.049 M, 0.335% Params, 0.013 GFLOPs, 0.103% FLOPs, 
              (conv): Conv2d(0.049 M, 0.333% Params, 0.013 GFLOPs, 0.102% FLOPs, 384, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
          )
          (act): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
        )
        (1): GELayer(
          0.255 M, 1.725% Params, 0.065 GFLOPs, 0.532% FLOPs, 
          (conv1): ConvModule(
            0.148 M, 1.001% Params, 0.038 GFLOPs, 0.308% FLOPs, 
            (conv): Conv2d(0.147 M, 0.999% Params, 0.038 GFLOPs, 0.307% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, 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)
          )
          (dwconv): Sequential(
            0.008 M, 0.057% Params, 0.002 GFLOPs, 0.019% FLOPs, 
            (0): ConvModule(
              0.008 M, 0.057% Params, 0.002 GFLOPs, 0.019% FLOPs, 
              (conv): Conv2d(0.007 M, 0.047% Params, 0.002 GFLOPs, 0.014% FLOPs, 128, 768, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)
              (bn): BatchNorm2d(0.002 M, 0.010% Params, 0.0 GFLOPs, 0.003% FLOPs, 768, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.002% FLOPs, inplace=True)
            )
          )
          (conv2): Sequential(
            0.099 M, 0.668% Params, 0.025 GFLOPs, 0.205% FLOPs, 
            (0): ConvModule(
              0.099 M, 0.668% Params, 0.025 GFLOPs, 0.205% FLOPs, 
              (conv): Conv2d(0.098 M, 0.666% Params, 0.025 GFLOPs, 0.204% FLOPs, 768, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
          )
          (act): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
        )
        (2): GELayer(
          0.255 M, 1.725% Params, 0.065 GFLOPs, 0.532% FLOPs, 
          (conv1): ConvModule(
            0.148 M, 1.001% Params, 0.038 GFLOPs, 0.308% FLOPs, 
            (conv): Conv2d(0.147 M, 0.999% Params, 0.038 GFLOPs, 0.307% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, 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)
          )
          (dwconv): Sequential(
            0.008 M, 0.057% Params, 0.002 GFLOPs, 0.019% FLOPs, 
            (0): ConvModule(
              0.008 M, 0.057% Params, 0.002 GFLOPs, 0.019% FLOPs, 
              (conv): Conv2d(0.007 M, 0.047% Params, 0.002 GFLOPs, 0.014% FLOPs, 128, 768, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)
              (bn): BatchNorm2d(0.002 M, 0.010% Params, 0.0 GFLOPs, 0.003% FLOPs, 768, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.002% FLOPs, inplace=True)
            )
          )
          (conv2): Sequential(
            0.099 M, 0.668% Params, 0.025 GFLOPs, 0.205% FLOPs, 
            (0): ConvModule(
              0.099 M, 0.668% Params, 0.025 GFLOPs, 0.205% FLOPs, 
              (conv): Conv2d(0.098 M, 0.666% Params, 0.025 GFLOPs, 0.204% FLOPs, 768, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
          )
          (act): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
        )
        (3): GELayer(
          0.255 M, 1.725% Params, 0.065 GFLOPs, 0.532% FLOPs, 
          (conv1): ConvModule(
            0.148 M, 1.001% Params, 0.038 GFLOPs, 0.308% FLOPs, 
            (conv): Conv2d(0.147 M, 0.999% Params, 0.038 GFLOPs, 0.307% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
            (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, 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)
          )
          (dwconv): Sequential(
            0.008 M, 0.057% Params, 0.002 GFLOPs, 0.019% FLOPs, 
            (0): ConvModule(
              0.008 M, 0.057% Params, 0.002 GFLOPs, 0.019% FLOPs, 
              (conv): Conv2d(0.007 M, 0.047% Params, 0.002 GFLOPs, 0.014% FLOPs, 128, 768, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)
              (bn): BatchNorm2d(0.002 M, 0.010% Params, 0.0 GFLOPs, 0.003% FLOPs, 768, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
              (activate): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.002% FLOPs, inplace=True)
            )
          )
          (conv2): Sequential(
            0.099 M, 0.668% Params, 0.025 GFLOPs, 0.205% FLOPs, 
            (0): ConvModule(
              0.099 M, 0.668% Params, 0.025 GFLOPs, 0.205% FLOPs, 
              (conv): Conv2d(0.098 M, 0.666% Params, 0.025 GFLOPs, 0.204% FLOPs, 768, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
              (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            )
          )
          (act): ReLU(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, )
        )
      )
      (stage4_CEBlock): CEBlock(
        0.165 M, 1.115% Params, 0.038 GFLOPs, 0.308% FLOPs, 
        (gap): Sequential(
          0.0 M, 0.002% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (0): AdaptiveAvgPool2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.000% FLOPs, output_size=(1, 1))
          (1): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.000% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
        (conv_gap): ConvModule(
          0.017 M, 0.113% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.016 M, 0.111% Params, 0.0 GFLOPs, 0.000% FLOPs, 128, 128, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.000% FLOPs, 128, 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)
        )
        (conv_last): ConvModule(
          0.148 M, 1.001% Params, 0.038 GFLOPs, 0.308% FLOPs, 
          (conv): Conv2d(0.147 M, 0.999% Params, 0.038 GFLOPs, 0.307% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, 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)
        )
      )
    )
    (bga): BGALayer(
      0.479 M, 3.244% Params, 0.873 GFLOPs, 7.092% FLOPs, 
      (detail_dwconv): Sequential(
        0.018 M, 0.121% Params, 0.073 GFLOPs, 0.596% FLOPs, 
        (0): DepthwiseSeparableConvModule(
          0.018 M, 0.121% Params, 0.073 GFLOPs, 0.596% FLOPs, 
          (depthwise_conv): ConvModule(
            0.001 M, 0.010% Params, 0.006 GFLOPs, 0.047% FLOPs, 
            (conv): Conv2d(0.001 M, 0.008% Params, 0.005 GFLOPs, 0.038% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)
            (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.001 GFLOPs, 0.009% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
          (pointwise_conv): ConvModule(
            0.017 M, 0.112% Params, 0.068 GFLOPs, 0.550% FLOPs, 
            (conv): Conv2d(0.017 M, 0.112% Params, 0.068 GFLOPs, 0.550% FLOPs, 128, 128, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (detail_down): Sequential(
        0.148 M, 1.001% Params, 0.151 GFLOPs, 1.230% FLOPs, 
        (0): ConvModule(
          0.148 M, 1.001% Params, 0.151 GFLOPs, 1.229% FLOPs, 
          (conv): Conv2d(0.147 M, 0.999% Params, 0.151 GFLOPs, 1.227% FLOPs, 128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.002% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
        (1): AvgPool2d(0.0 M, 0.000% Params, 0.0 GFLOPs, 0.001% FLOPs, kernel_size=3, stride=2, padding=1)
      )
      (semantic_conv): Sequential(
        0.148 M, 1.001% Params, 0.038 GFLOPs, 0.307% FLOPs, 
        (0): ConvModule(
          0.148 M, 1.001% Params, 0.038 GFLOPs, 0.307% FLOPs, 
          (conv): Conv2d(0.147 M, 0.999% Params, 0.038 GFLOPs, 0.307% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (semantic_dwconv): Sequential(
        0.018 M, 0.121% Params, 0.005 GFLOPs, 0.037% FLOPs, 
        (0): DepthwiseSeparableConvModule(
          0.018 M, 0.121% Params, 0.005 GFLOPs, 0.037% FLOPs, 
          (depthwise_conv): ConvModule(
            0.001 M, 0.010% Params, 0.0 GFLOPs, 0.003% FLOPs, 
            (conv): Conv2d(0.001 M, 0.008% Params, 0.0 GFLOPs, 0.002% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), groups=128, bias=False)
            (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.0 GFLOPs, 0.001% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
          (pointwise_conv): ConvModule(
            0.017 M, 0.112% Params, 0.004 GFLOPs, 0.034% FLOPs, 
            (conv): Conv2d(0.017 M, 0.112% Params, 0.004 GFLOPs, 0.034% FLOPs, 128, 128, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (conv): ConvModule(
        0.148 M, 1.001% Params, 0.606 GFLOPs, 4.921% FLOPs, 
        (conv): Conv2d(0.147 M, 0.999% Params, 0.604 GFLOPs, 4.908% FLOPs, 128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn): BatchNorm2d(0.0 M, 0.002% Params, 0.001 GFLOPs, 0.009% FLOPs, 128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (activate): ReLU(0.0 M, 0.000% Params, 0.001 GFLOPs, 0.004% FLOPs, inplace=True)
      )
    )
  )
  init_cfg=[{'type': 'Kaiming', 'layer': 'Conv2d'}, {'type': 'Constant', 'val': 1, 'layer': ['_BatchNorm', 'GroupNorm']}]
  (decode_head): FCNHead(
    1.184 M, 8.018% Params, 4.853 GFLOPs, 39.432% 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.002 M, 0.014% Params, 0.008 GFLOPs, 0.068% FLOPs, 1024, 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(
      1.182 M, 8.004% Params, 4.844 GFLOPs, 39.364% FLOPs, 
      (0): ConvModule(
        1.182 M, 8.004% Params, 4.844 GFLOPs, 39.364% FLOPs, 
        (conv): Conv2d(1.18 M, 7.990% Params, 4.832 GFLOPs, 39.262% FLOPs, 128, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn): BatchNorm2d(0.002 M, 0.014% Params, 0.008 GFLOPs, 0.068% FLOPs, 1024, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (activate): ReLU(0.0 M, 0.000% Params, 0.004 GFLOPs, 0.034% FLOPs, inplace=True)
      )
    )
  )
  init_cfg={'type': 'Normal', 'std': 0.01, 'override': {'name': 'conv_seg'}}
  (auxiliary_head): ModuleList(
    11.422 M, 77.367% Params, 0.0 GFLOPs, 0.000% FLOPs, 
    (0): FCNHead(
      0.005 M, 0.032% 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, 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)
      (convs): Sequential(
        0.005 M, 0.032% Params, 0.0 GFLOPs, 0.000% FLOPs, 
        (0): ConvModule(
          0.002 M, 0.016% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.002 M, 0.016% Params, 0.0 GFLOPs, 0.000% FLOPs, 16, 16, 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, 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): ConvModule(
          0.002 M, 0.016% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.002 M, 0.016% Params, 0.0 GFLOPs, 0.000% FLOPs, 16, 16, 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, 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)
        )
      )
    )
    init_cfg={'type': 'Normal', 'std': 0.01, 'override': {'name': 'conv_seg'}}
    (1): FCNHead(
      0.056 M, 0.377% 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.001% 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.056 M, 0.376% Params, 0.0 GFLOPs, 0.000% FLOPs, 
        (0): ConvModule(
          0.019 M, 0.126% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.018 M, 0.125% Params, 0.0 GFLOPs, 0.000% FLOPs, 32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.001% 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)
        )
        (1): ConvModule(
          0.037 M, 0.251% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.037 M, 0.250% Params, 0.0 GFLOPs, 0.000% FLOPs, 64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.0 M, 0.001% 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'}}
    (2): FCNHead(
      0.739 M, 5.004% 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.001 M, 0.003% Params, 0.0 GFLOPs, 0.000% FLOPs, 256, 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.738 M, 5.001% Params, 0.0 GFLOPs, 0.000% FLOPs, 
        (0): ConvModule(
          0.148 M, 1.002% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.147 M, 0.999% Params, 0.0 GFLOPs, 0.000% FLOPs, 64, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.001 M, 0.003% Params, 0.0 GFLOPs, 0.000% FLOPs, 256, 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): ConvModule(
          0.59 M, 3.999% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(0.59 M, 3.995% Params, 0.0 GFLOPs, 0.000% FLOPs, 256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.001 M, 0.003% Params, 0.0 GFLOPs, 0.000% FLOPs, 256, 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'}}
    (3): FCNHead(
      10.623 M, 71.954% 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.002 M, 0.014% Params, 0.0 GFLOPs, 0.000% FLOPs, 1024, 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(
        10.621 M, 71.940% Params, 0.0 GFLOPs, 0.000% FLOPs, 
        (0): ConvModule(
          1.182 M, 8.004% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(1.18 M, 7.990% Params, 0.0 GFLOPs, 0.000% FLOPs, 128, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.002 M, 0.014% Params, 0.0 GFLOPs, 0.000% FLOPs, 1024, 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): ConvModule(
          9.439 M, 63.936% Params, 0.0 GFLOPs, 0.000% FLOPs, 
          (conv): Conv2d(9.437 M, 63.922% Params, 0.0 GFLOPs, 0.000% FLOPs, 1024, 1024, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn): BatchNorm2d(0.002 M, 0.014% Params, 0.0 GFLOPs, 0.000% FLOPs, 1024, 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: 12.31 GFLOPs
Params: 14.76 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.
