





from typing import TYPE_CHECKING

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


_lowerCamelCase   				=			{
    'configuration_mobilebert': [
        'MOBILEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'MobileBertConfig',
        'MobileBertOnnxConfig',
    ],
    'tokenization_mobilebert': ['MobileBertTokenizer'],
}

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

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_lowerCamelCase   				=			[
	    'MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'MobileBertForMaskedLM',
	    'MobileBertForMultipleChoice',
	    'MobileBertForNextSentencePrediction',
	    'MobileBertForPreTraining',
	    'MobileBertForQuestionAnswering',
	    'MobileBertForSequenceClassification',
	    'MobileBertForTokenClassification',
	    'MobileBertLayer',
	    'MobileBertModel',
	    'MobileBertPreTrainedModel',
	    'load_tf_weights_in_mobilebert',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_lowerCamelCase   				=			[
	    'TF_MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'TFMobileBertForMaskedLM',
	    'TFMobileBertForMultipleChoice',
	    'TFMobileBertForNextSentencePrediction',
	    'TFMobileBertForPreTraining',
	    'TFMobileBertForQuestionAnswering',
	    'TFMobileBertForSequenceClassification',
	    'TFMobileBertForTokenClassification',
	    'TFMobileBertMainLayer',
	    'TFMobileBertModel',
	    'TFMobileBertPreTrainedModel',
	]


if TYPE_CHECKING:
	from .configuration_mobilebert import (
	    MOBILEBERT_PRETRAINED_CONFIG_ARCHIVE_MAP,
	    MobileBertConfig,
	    MobileBertOnnxConfig,
	)
	from .tokenization_mobilebert import MobileBertTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_mobilebert_fast import MobileBertTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_mobilebert import (
		    MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    MobileBertForMaskedLM,
		    MobileBertForMultipleChoice,
		    MobileBertForNextSentencePrediction,
		    MobileBertForPreTraining,
		    MobileBertForQuestionAnswering,
		    MobileBertForSequenceClassification,
		    MobileBertForTokenClassification,
		    MobileBertLayer,
		    MobileBertModel,
		    MobileBertPreTrainedModel,
		    load_tf_weights_in_mobilebert,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_mobilebert import (
		    TF_MOBILEBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFMobileBertForMaskedLM,
		    TFMobileBertForMultipleChoice,
		    TFMobileBertForNextSentencePrediction,
		    TFMobileBertForPreTraining,
		    TFMobileBertForQuestionAnswering,
		    TFMobileBertForSequenceClassification,
		    TFMobileBertForTokenClassification,
		    TFMobileBertMainLayer,
		    TFMobileBertModel,
		    TFMobileBertPreTrainedModel,
		)

else:
	import sys

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






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


_lowerCamelCase   				=			logging.get_logger(__name__)




class   UpperCamelCase_       (     UpperCamelCase__    ):
							lowerCamelCase_           =					"timm_backbone"


							def __init__(							self    :Union[str, Any]							,				__A    :str=None							,				__A    :Union[str, Any]=3							,				__A    :str=True							,				__A    :Any=True							,				__A    :Optional[Any]=None							,				**__A    :List[str]							,				)   ->   Tuple:



									"""simple docstring"""



									super().__init__(**__A		)
									SCREAMING_SNAKE_CASE__			=      backbone
									SCREAMING_SNAKE_CASE__			=      num_channels
									SCREAMING_SNAKE_CASE__			=      features_only
									SCREAMING_SNAKE_CASE__			=      use_pretrained_backbone
									SCREAMING_SNAKE_CASE__			=      True
									SCREAMING_SNAKE_CASE__			=      out_indices if out_indices is not None else (-1,)