code: def __init__(
      self, in_channels: int, mid_channels: int, out_channels: int
  ) -> None:
      super().__init__()
      self.stem1 = ConvNormAct(in_channels, mid_channels, 3, 2)
      self.stem2a = ConvNormAct(mid_channels, mid_channels // 2, 2)
      self.stem2b = ConvNormAct(mid_channels // 2, mid_channels, 2)
      self.stem3 = ConvNormAct(mid_channels * 2, mid_channels, 3, 2)
      self.stem4 = ConvNormAct(mid_channels, out_channels, 1)
      self.pool = nn.Sequential(
          nn.ZeroPad2d((0, 1, 0, 1)), nn.MaxPool2d(2, 1)
      )
  
imports: from __future__ import annotations
  from typing import NamedTuple
  from torch import nn
  from kornia.contrib.models.common import ConvNormAct
  from kornia.core import Module, Tensor, concatenate
  from kornia.core.check import KORNIA_CHECK
label_desc: Use image node_id 1 to create a new StemBlock object from inherited base classes: Module with example: obj = StemBlock(in_channels, mid_channels, out_channels)