from typing import TYPE_CHECKING

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


_lowercase:	Optional[Any]       			=		{
    '''configuration_wav2vec2''': ['''WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''Wav2Vec2Config'''],
    '''feature_extraction_wav2vec2''': ['''Wav2Vec2FeatureExtractor'''],
    '''processing_wav2vec2''': ['''Wav2Vec2Processor'''],
    '''tokenization_wav2vec2''': ['''Wav2Vec2CTCTokenizer''', '''Wav2Vec2Tokenizer'''],
}


try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase:	Any       			=		[
				    '''WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''Wav2Vec2ForAudioFrameClassification''',
				    '''Wav2Vec2ForCTC''',
				    '''Wav2Vec2ForMaskedLM''',
				    '''Wav2Vec2ForPreTraining''',
				    '''Wav2Vec2ForSequenceClassification''',
				    '''Wav2Vec2ForXVector''',
				    '''Wav2Vec2Model''',
				    '''Wav2Vec2PreTrainedModel''',
				]

try:
				if not is_tf_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase:	int       			=		[
				    '''TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST''',
				    '''TFWav2Vec2ForCTC''',
				    '''TFWav2Vec2Model''',
				    '''TFWav2Vec2PreTrainedModel''',
				    '''TFWav2Vec2ForSequenceClassification''',
				]

try:
				if not is_flax_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				_lowercase:	Any       			=		[
				    '''FlaxWav2Vec2ForCTC''',
				    '''FlaxWav2Vec2ForPreTraining''',
				    '''FlaxWav2Vec2Model''',
				    '''FlaxWav2Vec2PreTrainedModel''',
				]


if TYPE_CHECKING:
				from .configuration_wavaveca import WAV_2_VEC_2_PRETRAINED_CONFIG_ARCHIVE_MAP, WavaVecaConfig
				from .feature_extraction_wavaveca import WavaVecaFeatureExtractor
				from .processing_wavaveca import WavaVecaProcessor
				from .tokenization_wavaveca import WavaVecaCTCTokenizer, WavaVecaTokenizer

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_wavaveca import (
								    WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
								    WavaVecaForAudioFrameClassification,
								    WavaVecaForCTC,
								    WavaVecaForMaskedLM,
								    WavaVecaForPreTraining,
								    WavaVecaForSequenceClassification,
								    WavaVecaForXVector,
								    WavaVecaModel,
								    WavaVecaPreTrainedModel,
								)

				try:
								if not is_tf_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_wavaveca import (
								    TF_WAV_2_VEC_2_PRETRAINED_MODEL_ARCHIVE_LIST,
								    TFWavaVecaForCTC,
								    TFWavaVecaForSequenceClassification,
								    TFWavaVecaModel,
								    TFWavaVecaPreTrainedModel,
								)

				try:
								if not is_flax_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_tf_wavaveca import (
								    FlaxWavaVecaForCTC,
								    FlaxWavaVecaForPreTraining,
								    FlaxWavaVecaModel,
								    FlaxWavaVecaPreTrainedModel,
								)


else:
				import sys

				_lowercase:	Dict       			=		_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)







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


_lowercase:	List[Any]       			=		logging.get_logger(__name__)

_lowercase:	int       			=		{
    '''alibaba-damo/mgp-str-base''': '''https://huggingface.co/alibaba-damo/mgp-str-base/resolve/main/config.json''',
}



class        lowerCamelCase__				(   UpperCAmelCase				):
			UpperCamelCase__    							="mgp-str"





			def __init__(       self	:	int  ,  lowercase__	:	List[Any]=[32, 1_28]  ,  lowercase__	:	str=4  ,  lowercase__	:	List[str]=3  ,  lowercase__	:	Tuple=27  ,  lowercase__	:	Optional[Any]=38  ,  lowercase__	:	Optional[Any]=5_02_57  ,  lowercase__	:	Dict=3_05_22  ,  lowercase__	:	Dict=7_68  ,  lowercase__	:	Tuple=12  ,  lowercase__	:	int=12  ,  lowercase__	:	int=4.0  ,  lowercase__	:	Tuple=True  ,  lowercase__	:	List[Any]=False  ,  lowercase__	:	int=1e-5  ,  lowercase__	:	int=0.0  ,  lowercase__	:	Optional[Any]=0.0  ,  lowercase__	:	List[Any]=0.0  ,  lowercase__	:	Union[str, Any]=False  ,  lowercase__	:	str=0.0_2  ,  **lowercase__	:	Optional[int]  ,  ):
										super().__init__(**lowercase__						)

										_lowerCAmelCase							=							image_size
										_lowerCAmelCase							=							patch_size
										_lowerCAmelCase							=							num_channels
										_lowerCAmelCase							=							max_token_length
										_lowerCAmelCase							=							num_character_labels
										_lowerCAmelCase							=							num_bpe_labels
										_lowerCAmelCase							=							num_wordpiece_labels
										_lowerCAmelCase							=							hidden_size
										_lowerCAmelCase							=							num_hidden_layers
										_lowerCAmelCase							=							num_attention_heads
										_lowerCAmelCase							=							mlp_ratio
										_lowerCAmelCase							=							distilled
										_lowerCAmelCase							=							layer_norm_eps
										_lowerCAmelCase							=							drop_rate
										_lowerCAmelCase							=							qkv_bias
										_lowerCAmelCase							=							attn_drop_rate
										_lowerCAmelCase							=							drop_path_rate
										_lowerCAmelCase							=							output_aa_attentions
										_lowerCAmelCase							=							initializer_range






