code: def __init__(self, in_channels, mid_channels, out_channels, depth):
      super(MaxPoolDownSize, self).__init__()
      self.depth = depth
      self.reduce_conv = ConvBlock(
          in_channels, mid_channels, kernel_size=1, stride=1, padding=0
      )
      self.convs = nn.ModuleList(
          [
              ConvBlock(
                  mid_channels,
                  out_channels,
                  kernel_size=3,
                  stride=1,
                  padding=1,
              )
              for conv_i in range(depth)
          ]
      )
      self.pool2d = nn.MaxPool2d(kernel_size=2)
  
imports: import math
  import torch
  import numbers
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new MaxPoolDownSize object from inherited base classes: nn with example: obj = MaxPoolDownSize(in_channels, mid_channels, out_channels, depth)