class_docstr: ConvNextV2 stage, consisting of an optional downsampling layer + multiple residual blocks.
  
  Args:
      config (`ConvNextV2V2Config`):
          Model configuration class.
      in_channels (`int`):
          Number of input channels.
      out_channels (`int`):
          Number of output channels.
      depth (`int`):
          Number of residual blocks.
      drop_path_rates(`List[float]`):
          Stochastic depth rates for each layer.
class_docstr_tok: ["ConvNextV2","stage",",","consisting","of","an","optional","downsampling","layer","+","multiple","residual","blocks",".","Args",":","config","(","`","ConvNextV2V2Config","`",")",":","Model","configuration","class",".","in_channels","(","`","int","`",")",":","Number","of","input","channels",".","out_channels","(","`","int","`",")",":","Number","of","output","channels",".","depth","(","`","int","`",")",":","Number","of","residual","blocks",".","drop_path_rates","(","`","List","[","float","]","`",")",":","Stochastic","depth","rates","for","each","layer","."]
code: def build(self, input_shape=None):
      if self.built:
          return
      self.built = True
      if getattr(self, "layers", None) is not None:
          for layer in self.layers:
              with tf.name_scope(layer.name):
                  layer.build(None)
      if self.in_channels != self.out_channels or self.stride > 1:
          with tf.name_scope(self.downsampling_layer[0].name):
              self.downsampling_layer[0].build(
                  [None, None, None, self.in_channels]
              )
          with tf.name_scope(self.downsampling_layer[1].name):
              self.downsampling_layer[1].build(
                  [None, None, None, self.in_channels]
              )
  
imports: from __future__ import annotations
  from typing import List, Optional, Tuple, Union
  import numpy
  import tensorflow
  from ...activations_tf import get_tf_activation
  from ...modeling_tf_outputs import TFBaseModelOutputWithNoAttention, TFBaseModelOutputWithPooling, TFBaseModelOutputWithPoolingAndNoAttention, TFImageClassifierOutputWithNoAttention
  from ...modeling_tf_utils import TFModelInputType, TFPreTrainedModel, TFSequenceClassificationLoss, get_initializer, keras_serializable, unpack_inputs
  from ...tf_utils import shape_list
  from ...utils import add_code_sample_docstrings, add_start_docstrings, add_start_docstrings_to_model_forward, logging
  from .configuration_convnextv2 import ConvNextV2Config
label_desc: Use image node_id 3 for calling the TFConvNextV2Stage obj's underlying member method code with example usage: obj.build(input_shape) without return types