from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


UpperCAmelCase_								=							{
    '''configuration_chinese_clip''': [
        '''CHINESE_CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''ChineseCLIPConfig''',
        '''ChineseCLIPOnnxConfig''',
        '''ChineseCLIPTextConfig''',
        '''ChineseCLIPVisionConfig''',
    ],
    '''processing_chinese_clip''': ['''ChineseCLIPProcessor'''],
}

try:
      if not is_vision_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      UpperCAmelCase_								=							['''ChineseCLIPFeatureExtractor''']
      UpperCAmelCase_								=							['''ChineseCLIPImageProcessor''']

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      UpperCAmelCase_								=							[
          '''CHINESE_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST''',
          '''ChineseCLIPModel''',
          '''ChineseCLIPPreTrainedModel''',
          '''ChineseCLIPTextModel''',
          '''ChineseCLIPVisionModel''',
      ]

if TYPE_CHECKING:
      from .configuration_chinese_clip import (
          CHINESE_CLIP_PRETRAINED_CONFIG_ARCHIVE_MAP,
          ChineseCLIPConfig,
          ChineseCLIPOnnxConfig,
          ChineseCLIPTextConfig,
          ChineseCLIPVisionConfig,
      )
      from .processing_chinese_clip import ChineseCLIPProcessor

      try:
            if not is_vision_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .feature_extraction_chinese_clip import ChineseCLIPFeatureExtractor, ChineseCLIPImageProcessor

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_chinese_clip import (
                CHINESE_CLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
                ChineseCLIPModel,
                ChineseCLIPPreTrainedModel,
                ChineseCLIPTextModel,
                ChineseCLIPVisionModel,
            )

else:
      import sys

      UpperCAmelCase_								=							_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)
from ...configuration_utils import PretrainedConfig
from ...utils import logging


UpperCAmelCase_								=							logging.get_logger(__name__)

UpperCAmelCase_								=							{
    '''facebook/s2t-wav2vec2-large-en-de''': (
        '''https://huggingface.co/facebook/s2t-wav2vec2-large-en-de/resolve/main/config.json'''
    ),
    # See all Speech2Text models at https://huggingface.co/models?filter=speech2text2
}





class      lowerCAmelCase						(					_a			):
     _SCREAMING_SNAKE_CASE     :     Optional[Any]		="""speech_to_text_2"""
     _SCREAMING_SNAKE_CASE     :     str		=["""past_key_values"""]
     _SCREAMING_SNAKE_CASE     :     Tuple		={"""num_attention_heads""": """decoder_attention_heads""", """hidden_size""": """d_model"""}



     def __init__(					self				,      lowerCAmelCase__=10000				,      lowerCAmelCase__=6				,      lowerCAmelCase__=2048				,      lowerCAmelCase__=4				,      lowerCAmelCase__=0.0				,      lowerCAmelCase__=True				,      lowerCAmelCase__="relu"				,      lowerCAmelCase__=256				,      lowerCAmelCase__=0.1				,      lowerCAmelCase__=0.0				,      lowerCAmelCase__=0.0				,      lowerCAmelCase__=0.02				,      lowerCAmelCase__=2				,      lowerCAmelCase__=True				,      lowerCAmelCase__=1				,      lowerCAmelCase__=0				,      lowerCAmelCase__=2				,      lowerCAmelCase__=1024				,      **lowerCAmelCase__				,      ):
            _A=	vocab_size
            _A=	d_model
            _A=	decoder_ffn_dim
            _A=	decoder_layers
            _A=	decoder_attention_heads
            _A=	dropout
            _A=	attention_dropout
            _A=	activation_dropout
            _A=	activation_function
            _A=	init_std
            _A=	decoder_layerdrop
            _A=	use_cache
            _A=	decoder_layers
            _A=	scale_embedding  # scale factor will be sqrt(d_model) if True
            _A=	max_target_positions

            super().__init__(
                pad_token_id=lowerCAmelCase__				,      bos_token_id=lowerCAmelCase__				,      eos_token_id=lowerCAmelCase__				,      decoder_start_token_id=lowerCAmelCase__				,      **lowerCAmelCase__				,      )