

"""simple docstring"""




from typing import TYPE_CHECKING

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


A_				:      Optional[int]           =			{
    "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_				:      int           =			["BlipImageProcessor"]


try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						A_				:      Any           =			[
						    "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_				:      int           =			[
						    "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_				:      Union[str, Any]           =			_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)





"""simple docstring"""




from __future__ import annotations

from typing import Dict

from ...configuration_utils import PretrainedConfig


A_				:      Union[str, Any]           =			{
    "susnato/ernie-m-base_pytorch": "https://huggingface.co/susnato/ernie-m-base_pytorch/blob/main/config.json",
    "susnato/ernie-m-large_pytorch": "https://huggingface.co/susnato/ernie-m-large_pytorch/blob/main/config.json",
}





class  lowerCamelCase    (A__      ):
			lowerCamelCase__ :		int       		=				'ernie_m'
			lowerCamelCase__ :		Dict[str, str]       		=				{"dropout": "classifier_dropout", "num_classes": "num_labels"}

			def __init__(       self					:    List[str]     ,					__UpperCAmelCase					:    int = 2_5_0_0_0_2     ,					__UpperCAmelCase					:    int = 7_6_8     ,					__UpperCAmelCase					:    int = 1_2     ,					__UpperCAmelCase					:    int = 1_2     ,					__UpperCAmelCase					:    int = 3_0_7_2     ,					__UpperCAmelCase					:    str = "gelu"     ,					__UpperCAmelCase					:    float = 0.1     ,					__UpperCAmelCase					:    float = 0.1     ,					__UpperCAmelCase					:    int = 5_1_4     ,					__UpperCAmelCase					:    float = 0.02     ,					__UpperCAmelCase					:    int = 1     ,					__UpperCAmelCase					:    float = 1e-05     ,					__UpperCAmelCase					:    Union[str, Any]=None     ,					__UpperCAmelCase					:    List[Any]=False     ,					__UpperCAmelCase					:    Union[str, Any]=0.0     ,					**__UpperCAmelCase					:    Any     ,					) ->     Optional[Any]:
						super().__init__(pad_token_id=__UpperCAmelCase     ,					**__UpperCAmelCase							)
						SCREAMING_SNAKE_CASE__										=   vocab_size
						SCREAMING_SNAKE_CASE__										=   hidden_size
						SCREAMING_SNAKE_CASE__										=   num_hidden_layers
						SCREAMING_SNAKE_CASE__										=   num_attention_heads
						SCREAMING_SNAKE_CASE__										=   intermediate_size
						SCREAMING_SNAKE_CASE__										=   hidden_act
						SCREAMING_SNAKE_CASE__										=   hidden_dropout_prob
						SCREAMING_SNAKE_CASE__										=   attention_probs_dropout_prob
						SCREAMING_SNAKE_CASE__										=   max_position_embeddings
						SCREAMING_SNAKE_CASE__										=   initializer_range
						SCREAMING_SNAKE_CASE__										=   layer_norm_eps
						SCREAMING_SNAKE_CASE__										=   classifier_dropout
						SCREAMING_SNAKE_CASE__										=   is_decoder
						SCREAMING_SNAKE_CASE__										=   act_dropout


