





'''simple docstring'''






from typing import TYPE_CHECKING

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


A__				:   str      ={
    '''configuration_blip''': [
        '''BLIP_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''BlipConfig''',
        '''BlipTextConfig''',
        '''BlipVisionConfig''',
    ],
    '''processing_blip''': ['''BlipProcessor'''],
}

try:
      if not is_vision_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      A__				:   Union[str, Any]      =['''BlipImageProcessor''']


try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      A__				:   List[str]      =[
          '''BLIP_PRETRAINED_MODEL_ARCHIVE_LIST''',
          '''BlipModel''',
          '''BlipPreTrainedModel''',
          '''BlipForConditionalGeneration''',
          '''BlipForQuestionAnswering''',
          '''BlipVisionModel''',
          '''BlipTextModel''',
          '''BlipForImageTextRetrieval''',
      ]

try:
      if not is_tf_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      A__				:   Optional[Any]      =[
          '''TF_BLIP_PRETRAINED_MODEL_ARCHIVE_LIST''',
          '''TFBlipModel''',
          '''TFBlipPreTrainedModel''',
          '''TFBlipForConditionalGeneration''',
          '''TFBlipForQuestionAnswering''',
          '''TFBlipVisionModel''',
          '''TFBlipTextModel''',
          '''TFBlipForImageTextRetrieval''',
      ]

if TYPE_CHECKING:
      from .configuration_blip import BLIP_PRETRAINED_CONFIG_ARCHIVE_MAP, BlipConfig, BlipTextConfig, BlipVisionConfig
      from .processing_blip import BlipProcessor

      try:
            if not is_vision_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .image_processing_blip import BlipImageProcessor

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_blip import (
                BLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
                BlipForConditionalGeneration,
                BlipForImageTextRetrieval,
                BlipForQuestionAnswering,
                BlipModel,
                BlipPreTrainedModel,
                BlipTextModel,
                BlipVisionModel,
            )

      try:
            if not is_tf_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_blip import (
                TF_BLIP_PRETRAINED_MODEL_ARCHIVE_LIST,
                TFBlipForConditionalGeneration,
                TFBlipForImageTextRetrieval,
                TFBlipForQuestionAnswering,
                TFBlipModel,
                TFBlipPreTrainedModel,
                TFBlipTextModel,
                TFBlipVisionModel,
            )

else:
      import sys

      A__				:   Optional[int]      =_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)












"""simple docstring"""






from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowercase__     						=						logging.get_logger(__name__)

lowercase__     						=						{"""ctrl""": """https://huggingface.co/ctrl/resolve/main/config.json"""}






class lowerCAmelCase__	(     lowercase						):






			'''simple docstring'''



			lowerCamelCase__      =			"""ctrl"""
			lowerCamelCase__      =			["""past_key_values"""]
			lowerCamelCase__      =			{
			    """max_position_embeddings""": """n_positions""",
			    """hidden_size""": """n_embd""",
			    """num_attention_heads""": """n_head""",
			    """num_hidden_layers""": """n_layer""",
			}
			def __init__(  self  ,      lowercase=246534  ,      lowercase=256  ,      lowercase=1280  ,      lowercase=8192  ,      lowercase=48  ,      lowercase=16  ,      lowercase=0.1  ,      lowercase=0.1  ,      lowercase=1E-6  ,      lowercase=0.02  ,      lowercase=True  ,      **lowercase  ,      ):
							_lowerCamelCase     :			Any    =    vocab_size
							_lowerCamelCase     :			Dict    =    n_positions
							_lowerCamelCase     :			Optional[int]    =    n_embd
							_lowerCamelCase     :			str    =    n_layer
							_lowerCamelCase     :			Union[str, Any]    =    n_head
							_lowerCamelCase     :			Any    =    dff
							_lowerCamelCase     :			int    =    resid_pdrop
							_lowerCamelCase     :			Dict    =    embd_pdrop
							_lowerCamelCase     :			Union[str, Any]    =    layer_norm_epsilon
							_lowerCamelCase     :			Tuple    =    initializer_range

							_lowerCamelCase     :			str    =    use_cache

							super().__init__(**lowercase  )