code: def make_stage(
      in_channels: int,
      out_channels: int,
      stride: int,
      n_blocks: int,
      block: type[BasicBlockD | BottleneckD],
  ) -> tuple[Module, int]:
      stage = nn.Sequential(
          block(in_channels, out_channels, stride, False),
          *[
              block(
                  out_channels * block.expansion, out_channels, 1, True
              )
              for _ in range(n_blocks - 1)
          ],
      )
      return stage, out_channels * block.expansion
  
imports: from __future__ import annotations
  from torch import nn
  from kornia.contrib.models.common import ConvNormAct
  from kornia.core import Module, Tensor
  from kornia.core.check import KORNIA_CHECK
label_desc: Use image node_id 2 for calling the ResNetD obj's underlying member method code with example usage: obj.make_stage(in_channels, out_channels, stride, n_blocks, block) and returns: stage,  unknown