M2MRF配置信息

M2MRF配置信息

  • 1. env_info环境信息
  • 2. 模型信息:model
  • 3. pipeline
  • 4. self.pipeline
  • 5. HRNet_M2MRF_C


摘要:由于文章内容限制,【M2MRF代码解读】文章放不下那么多文本,便在此文章中展示所有配置信息。

1. env_info环境信息

env_info:环境信息如下

sys.platform: linux Python: 3.7.12 | packaged by conda-forge |
(default, Oct 26 2021, 06:08:21) [GCC 9.4.0] CUDA available: True GPU
0: NVIDIA TITAN Xp CUDA_HOME: /usr/local/cuda-10.2: GCC: gcc (GCC)
5.2.0 PyTorch: 1.6.0 PyTorch compiling details: PyTorch built with:

  • GCC 7.3
  • C++ Version: 201402
  • Intel® oneAPI Math Kernel Library Version 2021.4-Product Build 20210904 for Intel® 64 architecture applications
  • Intel® MKL-DNN v1.5.0 (Git Hash e2ac1fac44c5078ca927cb9b90e1b3066a0b2ed0)
  • OpenMP 201511 (a.k.a. OpenMP 4.5)
  • NNPACK is enabled
  • CPU capability usage: AVX2
  • CUDA Runtime 10.2
  • NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_61,code=sm_61;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_37,code=compute_37
  • CuDNN 7.6.5
  • Magma 2.5.2
  • Build settings: BLAS=MKL, BUILD_TYPE=Release, CXX_FLAGS= -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DUSE_VULKAN_WRAPPER -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Wno-stringop-overflow, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, USE_CUDA=ON,
    USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON,
    USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON,
    USE_STATIC_DISPATCH=OFF,

TorchVision: 0.7.0 OpenCV: 4.7.0 MMCV: 1.2.0 MMCV Compiler: GCC 7.3
MMCV CUDA Compiler: 10.2 MMSegmentation: 0.8.0+

2. 模型信息:model

这部分是cfg.pretty_text的内容:

EncoderDecoder( (backbone): HRNet_M2MRF_C(

(conv1): Conv2d(3, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)
(layer1): Sequential(
  (0): Bottleneck(
    (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
    (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (relu): ReLU(inplace=True)
    (downsample): Sequential(
      (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
      (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    )
  )
  (1): Bottleneck(
    (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
    (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (relu): ReLU(inplace=True)
  )
  (2): Bottleneck(
    (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
    (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (relu): ReLU(inplace=True)
  )
  (3): Bottleneck(
    (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
    (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (relu): ReLU(inplace=True)
  )
)
(transition1): ModuleList(
  (0): Sequential(
    (0): Conv2d(256, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
    (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU(inplace=True)
  )
  (1): Sequential(
    (0): Sequential(
      (0): M2MRF(
        (sample_encode_conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1))
        (sample): M2MRF_Module(
          (sample_fc): Conv1d(4096, 64, kernel_size=(1,), stride=(1,))
          (sample_fc1): Conv1d(64, 1024, kernel_size=(1,), stride=(1,))
        )
        (sample_decode_conv): Conv2d(64, 96, kernel_size=(1, 1), stride=(1, 1))
      )
      (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (2): ReLU(inplace=True)
    )
  )
)
(stage2): Sequential(
  (0): HRModule_M2MRF(
    (branches): ModuleList(
      (0): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (1): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
    )
    (fuse_layers): ModuleList(
      (0): ModuleList(
        (0): None
        (1): Sequential(
          (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (1): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): None
      )
    )
    (relu): ReLU()
  )
)
(transition2): ModuleList(
  (0): None
  (1): None
  (2): Sequential(
    (0): Sequential(
      (0): M2MRF(
        (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
        (sample): M2MRF_Module(
          (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
          (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
        )
        (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
      )
      (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (2): ReLU(inplace=True)
    )
  )
)
(stage3): Sequential(
  (0): HRModule_M2MRF(
    (branches): ModuleList(
      (0): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (1): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (2): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
    )
    (fuse_layers): ModuleList(
      (0): ModuleList(
        (0): None
        (1): Sequential(
          (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (2): Sequential(
          (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (1): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): None
        (2): Sequential(
          (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (2): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): None
      )
    )
    (relu): ReLU()
  )
  (1): HRModule_M2MRF(
    (branches): ModuleList(
      (0): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (1): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (2): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
    )
    (fuse_layers): ModuleList(
      (0): ModuleList(
        (0): None
        (1): Sequential(
          (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (2): Sequential(
          (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (1): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): None
        (2): Sequential(
          (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (2): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): None
      )
    )
    (relu): ReLU()
  )
  (2): HRModule_M2MRF(
    (branches): ModuleList(
      (0): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (1): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (2): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
    )
    (fuse_layers): ModuleList(
      (0): ModuleList(
        (0): None
        (1): Sequential(
          (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (2): Sequential(
          (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (1): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): None
        (2): Sequential(
          (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (2): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): None
      )
    )
    (relu): ReLU()
  )
  (3): HRModule_M2MRF(
    (branches): ModuleList(
      (0): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (1): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (2): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
    )
    (fuse_layers): ModuleList(
      (0): ModuleList(
        (0): None
        (1): Sequential(
          (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (2): Sequential(
          (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (1): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): None
        (2): Sequential(
          (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (2): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): None
      )
    )
    (relu): ReLU()
  )
)
(transition3): ModuleList(
  (0): None
  (1): None
  (2): None
  (3): Sequential(
    (0): Sequential(
      (0): M2MRF(
        (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
        (sample): M2MRF_Module(
          (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
          (sample_fc1): Conv1d(48, 768, kernel_size=(1,), stride=(1,))
        )
        (sample_decode_conv): Conv2d(48, 384, kernel_size=(1, 1), stride=(1, 1))
      )
      (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
      (2): ReLU(inplace=True)
    )
  )
)
(stage4): Sequential(
  (0): HRModule_M2MRF(
    (branches): ModuleList(
      (0): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (1): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (2): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (3): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
    )
    (fuse_layers): ModuleList(
      (0): ModuleList(
        (0): None
        (1): Sequential(
          (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (2): Sequential(
          (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (3): Sequential(
          (0): Conv2d(384, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 49152, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (1): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): None
        (2): Sequential(
          (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (3): Sequential(
          (0): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 24576, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (2): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): None
        (3): Sequential(
          (0): Conv2d(384, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(48, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(48, 192, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (3): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (2): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 384, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 384, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(48, 768, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(48, 384, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (3): None
      )
    )
    (relu): ReLU()
  )
  (1): HRModule_M2MRF(
    (branches): ModuleList(
      (0): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (1): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (2): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (3): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
    )
    (fuse_layers): ModuleList(
      (0): ModuleList(
        (0): None
        (1): Sequential(
          (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (2): Sequential(
          (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (3): Sequential(
          (0): Conv2d(384, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 49152, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (1): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): None
        (2): Sequential(
          (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (3): Sequential(
          (0): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 24576, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (2): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): None
        (3): Sequential(
          (0): Conv2d(384, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(48, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(48, 192, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (3): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (2): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 384, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 384, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(48, 768, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(48, 384, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (3): None
      )
    )
    (relu): ReLU()
  )
  (2): HRModule_M2MRF(
    (branches): ModuleList(
      (0): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (1): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (2): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
      (3): Sequential(
        (0): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (1): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (2): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
        (3): BasicBlock(
          (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
          (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (relu): ReLU(inplace=True)
        )
      )
    )
    (fuse_layers): ModuleList(
      (0): ModuleList(
        (0): None
        (1): Sequential(
          (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (2): Sequential(
          (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (3): Sequential(
          (0): Conv2d(384, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 49152, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (1): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): None
        (2): Sequential(
          (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
        (3): Sequential(
          (0): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 24576, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (2): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): None
        (3): Sequential(
          (0): Conv2d(384, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): M2MRF(
            (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(48, 12288, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(48, 192, kernel_size=(1, 1), stride=(1, 1))
          )
        )
      )
      (3): ModuleList(
        (0): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (2): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(12, 384, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (1): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
            (2): ReLU()
          )
          (1): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(24, 384, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (2): Sequential(
          (0): Sequential(
            (0): M2MRF(
              (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
              (sample): M2MRF_Module(
                (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
                (sample_fc1): Conv1d(48, 768, kernel_size=(1,), stride=(1,))
              )
              (sample_decode_conv): Conv2d(48, 384, kernel_size=(1, 1), stride=(1, 1))
            )
            (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          )
        )
        (3): None
      )
    )
    (relu): ReLU()
  )
)   )   (decode_head): FCNHead(
input_transform=resize_concat, ignore_index=255, align_corners=False
(loss_decode): BinaryLoss()
(conv_seg): Conv2d(720, 4, kernel_size=(1, 1), stride=(1, 1))
(convs): Sequential(
  (0): ConvModule(
    (conv): Conv2d(720, 720, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (bn): BatchNorm2d(720, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (activate): ReLU(inplace=True)
  )
)   ) )

3. pipeline

class CustomDataset中的pipeline参数:

[{‘type’: ‘LoadImageFromFile’},
{‘type’: ‘LoadAnnotations’},
{‘type’: ‘Resize’, ‘img_scale’: (512, 512), ‘ratio_range’: (0.5, 2.0)},
{‘type’: ‘RandomCrop’, ‘crop_size’: (512, 512), ‘cat_max_ratio’:0.75},
{‘type’: ‘RandomFlip’, ‘flip_ratio’: 0},
{‘type’: ‘PhotoMetricDistortion’},
{‘type’: ‘Normalize’, ‘mean’: [116.513, 56.437, 16.309], ‘std’: [80.206, 41.232, 13.293], ‘to_rgb’: True},
{‘type’: ‘Pad’, ‘size’: (512, 512), ‘pad_val’: 0, ‘seg_pad_val’: 0},
{‘type’: ‘DefaultFormatBundle’},
{‘type’: ‘Collect’, ‘keys’: [‘img’, ‘gt_semantic_seg’]}]

4. self.pipeline

Compose(
LoadImageFromFile(to_float32=False,color_type=‘color’,imdecode_backend=‘cv2’)
LoadAnnotations(reduce_zero_label=False,imdecode_backend=‘pillow’)
Resize(img_scale=[(512, 512)], multiscale_mode=range, ratio_range=(0.5, 2.0), keep_ratio=True)
RandomCrop(crop_size=(512, 512))
RandomFlip(flip_ratio=0)
PhotoMetricDistortion(brightness_delta=32, contrast_range=(0.5, 1.5), saturation_range=(0.5, 1.5), hue_delta=18)
Normalize(mean=[116.513 56.437 16.309], std=[80.206 41.232 13.293], to_rgb=True)
Pad(size=(512, 512), size_divisor=None, pad_val=0)
DefaultFormatBundle
Collect(keys=[‘img’, ‘gt_semantic_seg’], meta_keys=(‘filename’, ‘ori_filename’, ‘ori_shape’, ‘img_shape’, ‘pad_shape’, ‘scale_factor’,
‘flip’, ‘flip_direction’, ‘img_norm_cfg’)) )

5. HRNet_M2MRF_C

HRNet_M2MRF_C(
(conv1): Conv2d(3, 64, kernel_size=(3, 3), stride=(2,2), padding=(1, 1), bias=False)
(bn1): BatchNorm2d(64, eps=1e-05,momentum=0.1, affine=True, track_running_stats=True)
(conv2):Conv2d(64, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1),bias=False)
(bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1,affine=True, track_running_stats=True)
(relu): ReLU(inplace=True)

(layer1): Sequential(

(0): Bottleneck(
  (conv1): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
  (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (relu): ReLU(inplace=True)
  (downsample): Sequential(
    (0): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
    (1): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  )
)
(1): Bottleneck(
  (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
  (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (relu): ReLU(inplace=True)
)
(2): Bottleneck(
  (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
  (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (relu): ReLU(inplace=True)
)
(3): Bottleneck(
  (conv1): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn1): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv2): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
  (bn2): BatchNorm2d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (conv3): Conv2d(64, 256, kernel_size=(1, 1), stride=(1, 1), bias=False)
  (bn3): BatchNorm2d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (relu): ReLU(inplace=True)
)   )   (transition1): ModuleList(
(0): Sequential(
  (0): Conv2d(256, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
  (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
  (2): ReLU(inplace=True)
)
(1): Sequential(
  (0): Sequential(
    (0): M2MRF(
      (sample_encode_conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1))
      (sample): M2MRF_Module(
        (sample_fc): Conv1d(4096, 64, kernel_size=(1,), stride=(1,))
        (sample_fc1): Conv1d(64, 1024, kernel_size=(1,), stride=(1,))
      )
      (sample_decode_conv): Conv2d(64, 96, kernel_size=(1, 1), stride=(1, 1))
    )
    (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU(inplace=True)
  )
)   )   (stage2): Sequential(
(0): HRModule_M2MRF(
  (branches): ModuleList(
    (0): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (1): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
  )
  (fuse_layers): ModuleList(
    (0): ModuleList(
      (0): None
      (1): Sequential(
        (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (1): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): None
    )
  )
  (relu): ReLU()
)   )   (transition2): ModuleList(
(0): None
(1): None
(2): Sequential(
  (0): Sequential(
    (0): M2MRF(
      (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
      (sample): M2MRF_Module(
        (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
        (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
      )
      (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
    )
    (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU(inplace=True)
  )
)   )   (stage3): Sequential(
(0): HRModule_M2MRF(
  (branches): ModuleList(
    (0): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (1): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (2): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
  )
  (fuse_layers): ModuleList(
    (0): ModuleList(
      (0): None
      (1): Sequential(
        (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (2): Sequential(
        (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (1): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): None
      (2): Sequential(
        (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (2): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): None
    )
  )
  (relu): ReLU()
)
(1): HRModule_M2MRF(
  (branches): ModuleList(
    (0): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (1): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (2): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
  )
  (fuse_layers): ModuleList(
    (0): ModuleList(
      (0): None
      (1): Sequential(
        (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (2): Sequential(
        (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (1): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): None
      (2): Sequential(
        (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (2): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): None
    )
  )
  (relu): ReLU()
)
(2): HRModule_M2MRF(
  (branches): ModuleList(
    (0): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (1): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (2): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
  )
  (fuse_layers): ModuleList(
    (0): ModuleList(
      (0): None
      (1): Sequential(
        (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (2): Sequential(
        (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (1): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): None
      (2): Sequential(
        (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (2): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): None
    )
  )
  (relu): ReLU()
)
(3): HRModule_M2MRF(
  (branches): ModuleList(
    (0): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (1): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (2): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
  )
  (fuse_layers): ModuleList(
    (0): ModuleList(
      (0): None
      (1): Sequential(
        (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (2): Sequential(
        (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (1): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): None
      (2): Sequential(
        (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (2): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): None
    )
  )
  (relu): ReLU()
)   )   (transition3): ModuleList(
(0): None
(1): None
(2): None
(3): Sequential(
  (0): Sequential(
    (0): M2MRF(
      (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
      (sample): M2MRF_Module(
        (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
        (sample_fc1): Conv1d(48, 768, kernel_size=(1,), stride=(1,))
      )
      (sample_decode_conv): Conv2d(48, 384, kernel_size=(1, 1), stride=(1, 1))
    )
    (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
    (2): ReLU(inplace=True)
  )
)   )   (stage4): Sequential(
(0): HRModule_M2MRF(
  (branches): ModuleList(
    (0): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (1): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (2): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (3): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
  )
  (fuse_layers): ModuleList(
    (0): ModuleList(
      (0): None
      (1): Sequential(
        (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (2): Sequential(
        (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (3): Sequential(
        (0): Conv2d(384, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 49152, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (1): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): None
      (2): Sequential(
        (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (3): Sequential(
        (0): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 24576, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (2): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): None
      (3): Sequential(
        (0): Conv2d(384, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(48, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(48, 192, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (3): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (2): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 384, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 384, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(48, 768, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(48, 384, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (3): None
    )
  )
  (relu): ReLU()
)
(1): HRModule_M2MRF(
  (branches): ModuleList(
    (0): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (1): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (2): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (3): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
  )
  (fuse_layers): ModuleList(
    (0): ModuleList(
      (0): None
      (1): Sequential(
        (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (2): Sequential(
        (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (3): Sequential(
        (0): Conv2d(384, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 49152, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (1): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): None
      (2): Sequential(
        (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (3): Sequential(
        (0): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 24576, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (2): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): None
      (3): Sequential(
        (0): Conv2d(384, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(48, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(48, 192, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (3): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (2): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 384, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 384, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(48, 768, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(48, 384, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (3): None
    )
  )
  (relu): ReLU()
)
(2): HRModule_M2MRF(
  (branches): ModuleList(
    (0): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(48, 48, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (1): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(96, 96, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (2): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(192, 192, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
    (3): Sequential(
      (0): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (1): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (2): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
      (3): BasicBlock(
        (conv1): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (conv2): Conv2d(384, 384, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)
        (bn2): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (relu): ReLU(inplace=True)
      )
    )
  )
  (fuse_layers): ModuleList(
    (0): ModuleList(
      (0): None
      (1): Sequential(
        (0): Conv2d(96, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 3072, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (2): Sequential(
        (0): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (3): Sequential(
        (0): Conv2d(384, 48, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(12, 49152, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (1): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): None
      (2): Sequential(
        (0): Conv2d(192, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 6144, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
      (3): Sequential(
        (0): Conv2d(384, 96, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(24, 24576, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (2): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 192, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): None
      (3): Sequential(
        (0): Conv2d(384, 192, kernel_size=(1, 1), stride=(1, 1), bias=False)
        (1): BatchNorm2d(192, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        (2): M2MRF(
          (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
          (sample): M2MRF_Module(
            (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
            (sample_fc1): Conv1d(48, 12288, kernel_size=(1,), stride=(1,))
          )
          (sample_decode_conv): Conv2d(48, 192, kernel_size=(1, 1), stride=(1, 1))
        )
      )
    )
    (3): ModuleList(
      (0): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 48, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(48, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (2): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(48, 12, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(768, 12, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(12, 192, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(12, 384, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (1): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 96, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(96, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (1): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(96, 24, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(1536, 24, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(24, 384, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(24, 384, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (2): Sequential(
        (0): Sequential(
          (0): M2MRF(
            (sample_encode_conv): Conv2d(192, 48, kernel_size=(1, 1), stride=(1, 1))
            (sample): M2MRF_Module(
              (sample_fc): Conv1d(3072, 48, kernel_size=(1,), stride=(1,))
              (sample_fc1): Conv1d(48, 768, kernel_size=(1,), stride=(1,))
            )
            (sample_decode_conv): Conv2d(48, 384, kernel_size=(1, 1), stride=(1, 1))
          )
          (1): BatchNorm2d(384, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
        )
      )
      (3): None
    )
  )
  (relu): ReLU()
)   ) )

你可能感兴趣的:(深度学习,python,pytorch)