





from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


_lowerCamelCase			       =      logging.get_logger(__name__)

_lowerCamelCase			       =      {
    'facebook/levit-128S': 'https://huggingface.co/facebook/levit-128S/resolve/main/config.json',
    # See all LeViT models at https://huggingface.co/models?filter=levit
}







class 			__A       (      lowerCamelCase__  ):




      """simple docstring"""







      UpperCAmelCase__						=      """levit"""


      def __init__(		self      ,							a__=224      ,							a__=3      ,							a__=3      ,							a__=2      ,							a__=1      ,							a__=16      ,							a__=[128, 256, 384]      ,							a__=[4, 8, 12]      ,							a__=[4, 4, 4]      ,							a__=[16, 16, 16]      ,							a__=0      ,							a__=[2, 2, 2]      ,							a__=[2, 2, 2]      ,							a__=0.02      ,							**a__      ,							):



             """simple docstring"""





             super().__init__(**a__)
             _lowerCamelCase							:     List[str]	=		image_size
             _lowerCamelCase							:     Optional[Any]	=		num_channels
             _lowerCamelCase							:     Optional[Any]	=		kernel_size
             _lowerCamelCase							:     Optional[int]	=		stride
             _lowerCamelCase							:     Union[str, Any]	=		padding
             _lowerCamelCase							:     Optional[int]	=		hidden_sizes
             _lowerCamelCase							:     str	=		num_attention_heads
             _lowerCamelCase							:     Optional[Any]	=		depths
             _lowerCamelCase							:     Dict	=		key_dim
             _lowerCamelCase							:     Optional[Any]	=		drop_path_rate
             _lowerCamelCase							:     List[Any]	=		patch_size
             _lowerCamelCase							:     Union[str, Any]	=		attention_ratio
             _lowerCamelCase							:     Optional[Any]	=		mlp_ratio
             _lowerCamelCase							:     Optional[int]	=		initializer_range
             _lowerCamelCase							:     Tuple	=		[
                 ['''Subsample''', key_dim[0], hidden_sizes[0] // key_dim[0], 4, 2, 2],
                 ['''Subsample''', key_dim[0], hidden_sizes[1] // key_dim[0], 4, 2, 2],
             ]







class 			__A       (      lowerCamelCase__  ):




      """simple docstring"""







      UpperCAmelCase__						=      version.parse("""1.11"""  )


      @property
      def 				__snake_case			(		self):



             """simple docstring"""





             return OrderedDict(
                 [
                     ('''pixel_values''', {0: '''batch''', 1: '''num_channels''', 2: '''height''', 3: '''width'''}),
                 ])



      @property
      def 				__snake_case			(		self):



             """simple docstring"""





             return 1e-4








from typing import TYPE_CHECKING

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


_lowerCamelCase			       =      {
    'configuration_layoutlmv3': [
        'LAYOUTLMV3_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'LayoutLMv3Config',
        'LayoutLMv3OnnxConfig',
    ],
    'processing_layoutlmv3': ['LayoutLMv3Processor'],
    'tokenization_layoutlmv3': ['LayoutLMv3Tokenizer'],
}

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

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       _lowerCamelCase			       =      [
           'LAYOUTLMV3_PRETRAINED_MODEL_ARCHIVE_LIST',
           'LayoutLMv3ForQuestionAnswering',
           'LayoutLMv3ForSequenceClassification',
           'LayoutLMv3ForTokenClassification',
           'LayoutLMv3Model',
           'LayoutLMv3PreTrainedModel',
       ]

try:
       if not is_tf_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       _lowerCamelCase			       =      [
           'TF_LAYOUTLMV3_PRETRAINED_MODEL_ARCHIVE_LIST',
           'TFLayoutLMv3ForQuestionAnswering',
           'TFLayoutLMv3ForSequenceClassification',
           'TFLayoutLMv3ForTokenClassification',
           'TFLayoutLMv3Model',
           'TFLayoutLMv3PreTrainedModel',
       ]

try:
       if not is_vision_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       _lowerCamelCase			       =      ['LayoutLMv3FeatureExtractor']
       _lowerCamelCase			       =      ['LayoutLMv3ImageProcessor']


if TYPE_CHECKING:
       from .configuration_layoutlmva import (
           LAYOUTLMV3_PRETRAINED_CONFIG_ARCHIVE_MAP,
           LayoutLMvaConfig,
           LayoutLMvaOnnxConfig,
       )
       from .processing_layoutlmva import LayoutLMvaProcessor
       from .tokenization_layoutlmva import LayoutLMvaTokenizer

       try:
              if not is_tokenizers_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .tokenization_layoutlmva_fast import LayoutLMvaTokenizerFast

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_layoutlmva import (
                  LAYOUTLMV3_PRETRAINED_MODEL_ARCHIVE_LIST,
                  LayoutLMvaForQuestionAnswering,
                  LayoutLMvaForSequenceClassification,
                  LayoutLMvaForTokenClassification,
                  LayoutLMvaModel,
                  LayoutLMvaPreTrainedModel,
              )

       try:
              if not is_tf_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_tf_layoutlmva import (
                  TF_LAYOUTLMV3_PRETRAINED_MODEL_ARCHIVE_LIST,
                  TFLayoutLMvaForQuestionAnswering,
                  TFLayoutLMvaForSequenceClassification,
                  TFLayoutLMvaForTokenClassification,
                  TFLayoutLMvaModel,
                  TFLayoutLMvaPreTrainedModel,
              )

       try:
              if not is_vision_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .feature_extraction_layoutlmva import LayoutLMvaFeatureExtractor
              from .image_processing_layoutlmva import LayoutLMvaImageProcessor

else:
       import sys

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

