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
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


lowercase_     :   List[str] 				=				logging.get_logger(__name__)

lowercase_     :   Any 				=				{
    'microsoft/swin-tiny-patch4-window7-224': (
        'https://huggingface.co/microsoft/swin-tiny-patch4-window7-224/resolve/main/config.json'
    ),
    # See all Swin models at https://huggingface.co/models?filter=swin
}






class 		_lowerCamelCase		(   UpperCamelCase_    ,     UpperCamelCase_    ):
    __a  =      "swin"

    __a  =      {
        "num_attention_heads": "num_heads",
        "num_hidden_layers": "num_layers",
    }
    def __init__(  self , lowerCAmelCase=224 , lowerCAmelCase=4 , lowerCAmelCase=3 , lowerCAmelCase=96 , lowerCAmelCase=[2, 2, 6, 2] , lowerCAmelCase=[3, 6, 12, 24] , lowerCAmelCase=7 , lowerCAmelCase=4.0 , lowerCAmelCase=True , lowerCAmelCase=0.0 , lowerCAmelCase=0.0 , lowerCAmelCase=0.1 , lowerCAmelCase="gelu" , lowerCAmelCase=False , lowerCAmelCase=0.02 , lowerCAmelCase=1e-5 , lowerCAmelCase=32 , lowerCAmelCase=None , lowerCAmelCase=None , **lowerCAmelCase , )       ->					Tuple:
     super().__init__(**lowerCAmelCase   )

     SCREAMING_SNAKE_CASE__:   Any=      image_size
     SCREAMING_SNAKE_CASE__:   Optional[int]=      patch_size
     SCREAMING_SNAKE_CASE__:   Tuple=      num_channels
     SCREAMING_SNAKE_CASE__:   Union[str, Any]=      embed_dim
     SCREAMING_SNAKE_CASE__:   List[str]=      depths
     SCREAMING_SNAKE_CASE__:   Any=      len(lowerCAmelCase   )
     SCREAMING_SNAKE_CASE__:   Any=      num_heads
     SCREAMING_SNAKE_CASE__:   List[str]=      window_size
     SCREAMING_SNAKE_CASE__:   Any=      mlp_ratio
     SCREAMING_SNAKE_CASE__:   int=      qkv_bias
     SCREAMING_SNAKE_CASE__:   Dict=      hidden_dropout_prob
     SCREAMING_SNAKE_CASE__:   Union[str, Any]=      attention_probs_dropout_prob
     SCREAMING_SNAKE_CASE__:   Any=      drop_path_rate
     SCREAMING_SNAKE_CASE__:   Optional[int]=      hidden_act
     SCREAMING_SNAKE_CASE__:   Union[str, Any]=      use_absolute_embeddings
     SCREAMING_SNAKE_CASE__:   Tuple=      layer_norm_eps
     SCREAMING_SNAKE_CASE__:   str=      initializer_range
     SCREAMING_SNAKE_CASE__:   Dict=      encoder_stride
     # we set the hidden_size attribute in order to make Swin work with VisionEncoderDecoderModel
     # this indicates the channel dimension after the last stage of the model
     SCREAMING_SNAKE_CASE__:   Optional[Any]=      int(embed_dim * 2 ** (len(lowerCAmelCase   ) - 1)   )
     SCREAMING_SNAKE_CASE__:   List[Any]=      ['''stem'''] + [f'stage{idx}' for idx in range(1 , len(lowerCAmelCase   ) + 1   )]
     SCREAMING_SNAKE_CASE__,	SCREAMING_SNAKE_CASE__:   Optional[int]=      get_aligned_output_features_output_indices(
         out_features=lowerCAmelCase , out_indices=lowerCAmelCase , stage_names=self.stage_names   )






class 		_lowerCamelCase		(   UpperCamelCase_    ):
    __a  =      version.parse("1.11"    )
    @property
    def 						UpperCamelCase_				(  self   )       ->					Mapping[str, Mapping[int, str]]:
     return OrderedDict(
         [
             ('''pixel_values''', {0: '''batch''', 1: '''num_channels''', 2: '''height''', 3: '''width'''}),
         ]   )



    @property
    def 						UpperCamelCase_				(  self   )       ->					float:
     return 1e-4


from collections import OrderedDict
from typing import Mapping

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


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

lowercase_     :   List[Any] 				=				{
    'facebook/xlm-roberta-xl': 'https://huggingface.co/facebook/xlm-roberta-xl/resolve/main/config.json',
    'facebook/xlm-roberta-xxl': 'https://huggingface.co/facebook/xlm-roberta-xxl/resolve/main/config.json',
    # See all XLM-RoBERTa-XL models at https://huggingface.co/models?filter=xlm-roberta-xl
}






class 		_lowerCamelCase		(   UpperCamelCase_    ):
    __a  =      "xlm-roberta-xl"
    def __init__(  self , lowerCAmelCase=250880 , lowerCAmelCase=2560 , lowerCAmelCase=36 , lowerCAmelCase=32 , lowerCAmelCase=10240 , lowerCAmelCase="gelu" , lowerCAmelCase=0.1 , lowerCAmelCase=0.1 , lowerCAmelCase=514 , lowerCAmelCase=1 , lowerCAmelCase=0.02 , lowerCAmelCase=1e-05 , lowerCAmelCase=1 , lowerCAmelCase=0 , lowerCAmelCase=2 , lowerCAmelCase="absolute" , lowerCAmelCase=True , lowerCAmelCase=None , **lowerCAmelCase , )       ->					Union[str, Any]:
     super().__init__(pad_token_id=lowerCAmelCase , bos_token_id=lowerCAmelCase , eos_token_id=lowerCAmelCase , **lowerCAmelCase   )
     SCREAMING_SNAKE_CASE__:   List[Any]=      vocab_size
     SCREAMING_SNAKE_CASE__:   Dict=      hidden_size
     SCREAMING_SNAKE_CASE__:   Tuple=      num_hidden_layers
     SCREAMING_SNAKE_CASE__:   Optional[Any]=      num_attention_heads
     SCREAMING_SNAKE_CASE__:   int=      hidden_act
     SCREAMING_SNAKE_CASE__:   Any=      intermediate_size
     SCREAMING_SNAKE_CASE__:   Optional[Any]=      hidden_dropout_prob
     SCREAMING_SNAKE_CASE__:   str=      attention_probs_dropout_prob
     SCREAMING_SNAKE_CASE__:   List[Any]=      max_position_embeddings
     SCREAMING_SNAKE_CASE__:   Dict=      type_vocab_size
     SCREAMING_SNAKE_CASE__:   Union[str, Any]=      initializer_range
     SCREAMING_SNAKE_CASE__:   Dict=      layer_norm_eps
     SCREAMING_SNAKE_CASE__:   Dict=      position_embedding_type
     SCREAMING_SNAKE_CASE__:   Optional[Any]=      use_cache
     SCREAMING_SNAKE_CASE__:   str=      classifier_dropout






class 		_lowerCamelCase		(   UpperCamelCase_    ):
    @property
    def 						UpperCamelCase_				(  self   )       ->					Mapping[str, Mapping[int, str]]:
     if self.task == "multiple-choice":
      SCREAMING_SNAKE_CASE__:   Dict=      {0: '''batch''', 1: '''choice''', 2: '''sequence'''}
     else:
      SCREAMING_SNAKE_CASE__:   List[str]=      {0: '''batch''', 1: '''sequence'''}
     return OrderedDict(
         [
             ('''input_ids''', dynamic_axis),
             ('''attention_mask''', dynamic_axis),
         ]   )

