code: def __init__(
      self,
      spatial_dims: int,
      in_channels: int,
      out_channels: int,
      kernel_size: Sequence[int] | int,
  ) -> None:
      super().__init__()
      if in_channels != out_channels:
          raise ValueError(
              f"expecting in_channels == out_channels, "
              f"got in_channels={in_channels}, out_channels={out_channels}"
          )
      self.conv_block = get_conv_block(
          spatial_dims=spatial_dims,
          in_channels=in_channels,
          out_channels=out_channels,
          kernel_size=kernel_size,
      )
      self.conv = get_conv_layer(
          spatial_dims=spatial_dims,
          in_channels=out_channels,
          out_channels=out_channels,
          kernel_size=kernel_size,
      )
      self.norm = Norm[Norm.BATCH, spatial_dims](out_channels)
      self.relu = nn.ReLU()
  
imports: from __future__ import annotations
  from collections.abc import Sequence
  import torch
  from torch import nn
  from torch.nn import functional
  from monai.networks.blocks import Convolution
  from monai.networks.layers import same_padding
  from monai.networks.layers.factories import Conv, Norm, Pool
label_desc: Use image node_id 1 to create a new ResidualBlock object from inherited base classes: nn with example: obj = ResidualBlock(spatial_dims, in_channels, out_channels, kernel_size)