code: def __init__(
      self, stem_channels: list[int], stage_configs: list[StageConfig]
  ) -> None:
      KORNIA_CHECK(len(stem_channels) == 3)
      KORNIA_CHECK(len(stage_configs) == 4)
      super().__init__()
      self.out_channels = [
          config.out_channels for config in stage_configs[-3:]
      ]
      self.stem = StemBlock(*stem_channels)
      self.stages = nn.ModuleList()
      for cfg in stage_configs:
          self.stages.append(HGStage(cfg))
  
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 PPHGNetV2 object from inherited base classes: Module with example: obj = PPHGNetV2(stem_channels, stage_configs)