


from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
    is_vision_available,
)


SCREAMING_SNAKE_CASE							    =							{
    'configuration_clip': [
        'CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'CLIPConfig',
        'CLIPOnnxConfig',
        'CLIPTextConfig',
        'CLIPVisionConfig',
    ],
    'processing_clip': ['CLIPProcessor'],
    'tokenization_clip': ['CLIPTokenizer'],
}

try:
  if not is_tokenizers_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE							    =							['CLIPTokenizerFast']

try:
  if not is_vision_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE							    =							['CLIPFeatureExtractor']
  SCREAMING_SNAKE_CASE							    =							['CLIPImageProcessor']

try:
  if not is_torch_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE							    =							[
      'CLIP_PRETRAINED_MODEL_ARCHIVE_LIST',
      'CLIPModel',
      'CLIPPreTrainedModel',
      'CLIPTextModel',
      'CLIPTextModelWithProjection',
      'CLIPVisionModel',
      'CLIPVisionModelWithProjection',
  ]

try:
  if not is_tf_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE							    =							[
      'TF_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST',
      'TFCLIPModel',
      'TFCLIPPreTrainedModel',
      'TFCLIPTextModel',
      'TFCLIPVisionModel',
  ]

try:
  if not is_flax_available():
    raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
  pass
else:
  SCREAMING_SNAKE_CASE							    =							[
      'FlaxCLIPModel',
      'FlaxCLIPPreTrainedModel',
      'FlaxCLIPTextModel',
      'FlaxCLIPTextPreTrainedModel',
      'FlaxCLIPVisionModel',
      'FlaxCLIPVisionPreTrainedModel',
  ]


if TYPE_CHECKING:
  from .configuration_clip import (
      CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
      CLIPConfig,
      CLIPOnnxConfig,
      CLIPTextConfig,
      CLIPVisionConfig,
  )
  from .processing_clip import CLIPProcessor
  from .tokenization_clip import CLIPTokenizer

  try:
    if not is_tokenizers_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .tokenization_clip_fast import CLIPTokenizerFast

  try:
    if not is_vision_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .feature_extraction_clip import CLIPFeatureExtractor
    from .image_processing_clip import CLIPImageProcessor

  try:
    if not is_torch_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_clip import (
        CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
        CLIPModel,
        CLIPPreTrainedModel,
        CLIPTextModel,
        CLIPTextModelWithProjection,
        CLIPVisionModel,
        CLIPVisionModelWithProjection,
    )

  try:
    if not is_tf_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_tf_clip import (
        TF_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFCLIPModel,
        TFCLIPPreTrainedModel,
        TFCLIPTextModel,
        TFCLIPVisionModel,
    )

  try:
    if not is_flax_available():
      raise OptionalDependencyNotAvailable()
  except OptionalDependencyNotAvailable:
    pass
  else:
    from .modeling_flax_clip import (
        FlaxCLIPModel,
        FlaxCLIPPreTrainedModel,
        FlaxCLIPTextModel,
        FlaxCLIPTextPreTrainedModel,
        FlaxCLIPVisionModel,
        FlaxCLIPVisionPreTrainedModel,
    )


else:
  import sys

  SCREAMING_SNAKE_CASE							    =							_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)







'''simple docstring'''
from ...configuration_utils import PretrainedConfig
from ...utils import logging


__SCREAMING_SNAKE_CASE					:				Optional[int]									=		logging.get_logger(__name__)

__SCREAMING_SNAKE_CASE					:				Union[str, Any]									=		{
    '''tanreinama/GPTSAN-2.8B-spout_is_uniform''': (
        '''https://huggingface.co/tanreinama/GPTSAN-2.8B-spout_is_uniform/resolve/main/config.json'''
    ),
}






class 					__lowerCAmelCase   (   lowercase						):

						"""simple docstring"""






						_UpperCAmelCase		:       Optional[int]   						="gptsan-japanese"
						_UpperCAmelCase		:       Union[str, Any]   						=[
						    "past_key_values",
						]
						_UpperCAmelCase		:       int   						={
						    "hidden_size": "d_model",
						    "num_attention_heads": "num_heads",
						    "num_hidden_layers": "num_layers",
						}






						def __init__(  self							:      List[str] ,  lowerCAmelCase							:      Dict=3_60_00 ,  lowerCAmelCase							:      Union[str, Any]=12_80 ,  lowerCAmelCase							:      Tuple=10_24 ,  lowerCAmelCase							:      Any=81_92 ,  lowerCAmelCase							:      List[str]=40_96 ,  lowerCAmelCase							:      Dict=1_28 ,  lowerCAmelCase							:      int=10 ,  lowerCAmelCase							:      str=0 ,  lowerCAmelCase							:      int=16 ,  lowerCAmelCase							:      int=16 ,  lowerCAmelCase							:      str=1_28 ,  lowerCAmelCase							:      Dict=0.0 ,  lowerCAmelCase							:      List[str]=1e-5 ,  lowerCAmelCase							:      List[str]=False ,  lowerCAmelCase							:      int=0.0 ,  lowerCAmelCase							:      Tuple="float32" ,  lowerCAmelCase							:      Optional[int]=False ,  lowerCAmelCase							:      int=False ,  lowerCAmelCase							:      Tuple=False ,  lowerCAmelCase							:      Optional[Any]=0.0_0_2 ,  lowerCAmelCase							:      Tuple=False ,  lowerCAmelCase							:      str=True ,  lowerCAmelCase							:      Optional[int]=3_59_98 ,  lowerCAmelCase							:      Optional[Any]=3_59_95 ,  lowerCAmelCase							:      Tuple=3_59_99 ,  **lowerCAmelCase							:      Dict ,  ):
													A_			    =		vocab_size
													A_			    =		max_position_embeddings
													A_			    =		d_model
													A_			    =		d_ff
													A_			    =		d_ext
													A_			    =		d_spout
													A_			    =		num_switch_layers
													A_			    =		num_ext_layers
													A_			    =		num_switch_layers + num_ext_layers
													A_			    =		num_heads
													A_			    =		num_experts
													A_			    =		expert_capacity
													A_			    =		dropout_rate
													A_			    =		layer_norm_epsilon
													A_			    =		router_bias
													A_			    =		router_jitter_noise
													A_			    =		router_dtype
													A_			    =		router_ignore_padding_tokens
													A_			    =		output_hidden_states
													A_			    =		output_attentions
													A_			    =		initializer_factor
													A_			    =		output_router_logits
													A_			    =		use_cache

													super().__init__(
													    separator_token_id=lowerCAmelCase ,  pad_token_id=lowerCAmelCase ,  eos_token_id=lowerCAmelCase ,  **lowerCAmelCase ,  )





