code: def call(
      self,
      pixel_values: Optional[TFModelInputType] = None,
      output_hidden_states: Optional[bool] = None,
      return_dict: Optional[bool] = None,
      training: bool = False,
  ) -> Union[TFBaseModelOutputWithPooling, Tuple[tf.Tensor]]:
      output_hidden_states = (
          output_hidden_states
          if output_hidden_states is not None
          else self.config.output_hidden_states
      )
      return_dict = (
          return_dict
          if return_dict is not None
          else self.config.use_return_dict
      )
  
      if pixel_values is None:
          raise ValueError("You have to specify pixel_values")
  
      embedding_output = self.embeddings(
          pixel_values, training=training
      )
  
      encoder_outputs = self.encoder(
          embedding_output,
          output_hidden_states=output_hidden_states,
          return_dict=return_dict,
          training=training,
      )
  
      last_hidden_state = encoder_outputs[0]
      # Change to NCHW output format have uniformity in the modules
      last_hidden_state = tf.transpose(
          last_hidden_state, perm=(0, 3, 1, 2)
      )
      pooled_output = self.layernorm(self.pooler(last_hidden_state))
  
      # Change the other hidden state outputs to NCHW as well
      if output_hidden_states:
          hidden_states = tuple(
              [
                  tf.transpose(h, perm=(0, 3, 1, 2))
                  for h in encoder_outputs[1]
              ]
          )
  
      if not return_dict:
          hidden_states = hidden_states if output_hidden_states else ()
          return (last_hidden_state, pooled_output) + hidden_states
  
      return TFBaseModelOutputWithPooling(
          last_hidden_state=last_hidden_state,
          pooler_output=pooled_output,
          hidden_states=hidden_states
          if output_hidden_states
          else encoder_outputs.hidden_states,
      )
  
imports: from typing import Dict, Optional, Tuple, Union
  import numpy
  import tensorflow
  from transformers import shape_list
  from ...activations_tf import get_tf_activation
  from ...modeling_tf_outputs import TFBaseModelOutput, TFBaseModelOutputWithPooling, TFSequenceClassifierOutput
  from ...modeling_tf_utils import TFModelInputType, TFPreTrainedModel, TFSequenceClassificationLoss, get_initializer, keras_serializable, unpack_inputs
  from ...utils import add_start_docstrings, add_start_docstrings_to_model_forward, logging, replace_return_docstrings
  from .configuration_convnext import ConvNextConfig
label_desc: Use image node_id 2 for calling the TFConvNextMainLayer obj's underlying member method code with example usage: obj.call(pixel_values, output_hidden_states, return_dict, training) and returns: TFBaseModelOutputWithPooling, unknown