class_docstr: ConvNeXt
      A Tensorflow impl of : `A ConvNet for the 2020s`  -
        https://arxiv.org/pdf/2201.03545.pdf
  Args:
      num_classes (int): Number of classes for classification head. Default: 1000
      depths (tuple(int)): Number of blocks at each stage. Default: [3, 3, 9, 3]
      dims (int): Feature dimension at each stage. Default: [96, 192, 384, 768]
      drop_path_rate (float): Stochastic depth rate. Default: 0.
      layer_scale_init_value (float): Init value for Layer Scale. Default: 1e-6.
code: def __init__(
      self,
      num_classes: int,
      depths: list,
      dims: list,
      drop_path_rate: float = 0.0,
      layer_scale_init_value: float = 1e-6,
  ):
      super().__init__()
      self.stem = Stem(dims[0], name="stem")
  
      cur = 0
      dp_rates = np.linspace(
          start=0, stop=drop_path_rate, num=sum(depths)
      )
      self.stage1 = [
          Block(
              dim=dims[0],
              drop_rate=dp_rates[cur + i],
              layer_scale_init_value=layer_scale_init_value,
              name=f"stage1_block{i}",
          )
          for i in range(depths[0])
      ]
      cur += depths[0]
  
      self.downsample2 = DownSample(dims[1], name="downsample2")
      self.stage2 = [
          Block(
              dim=dims[1],
              drop_rate=dp_rates[cur + i],
              layer_scale_init_value=layer_scale_init_value,
              name=f"stage2_block{i}",
          )
          for i in range(depths[1])
      ]
      cur += depths[1]
  
      self.downsample3 = DownSample(dims[2], name="downsample3")
      self.stage3 = [
          Block(
              dim=dims[2],
              drop_rate=dp_rates[cur + i],
              layer_scale_init_value=layer_scale_init_value,
              name=f"stage3_block{i}",
          )
          for i in range(depths[2])
      ]
      cur += depths[2]
  
      self.downsample4 = DownSample(dims[3], name="downsample4")
      self.stage4 = [
          Block(
              dim=dims[3],
              drop_rate=dp_rates[cur + i],
              layer_scale_init_value=layer_scale_init_value,
              name=f"stage4_block{i}",
          )
          for i in range(depths[3])
      ]
  
      self.norm = layers.LayerNormalization(epsilon=1e-6, name="norm")
      self.head = layers.Dense(
          units=num_classes,
          kernel_initializer=KERNEL_INITIALIZER,
          bias_initializer=BIAS_INITIALIZER,
          name="head",
      )
  
imports: import numpy
  import tensorflow
  from tensorflow.keras import layers, initializers, Model
label_desc: Use image node_id 1 to create a new ConvNeXt object from inherited base classes: Model with example: obj = ConvNeXt(num_classes, depths, dims, drop_path_rate, layer_scale_init_value)