




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


lowerCamelCase	:	str				=   logging.get_logger(__name__)

lowerCamelCase	:	int				=   {
    'microsoft/swinv2-tiny-patch4-window8-256': (
        'https://huggingface.co/microsoft/swinv2-tiny-patch4-window8-256/resolve/main/config.json'
    ),
}




class 						__lowercase		(UpperCamelCase__							):




      """simple docstring"""





      _snake_case												=						"""swinv2"""

      _snake_case												=						{
          """num_attention_heads""": """num_heads""",
          """num_hidden_layers""": """num_layers""",
      }

      def __init__(				self    ,				A=2_2_4    ,				A=4    ,				A=3    ,				A=9_6    ,				A=[2, 2, 6, 2]    ,				A=[3, 6, 1_2, 2_4]    ,				A=7    ,				A=4.0    ,				A=True    ,				A=0.0    ,				A=0.0    ,				A=0.1    ,				A="gelu"    ,				A=False    ,				A=0.02    ,				A=1e-5    ,				A=3_2    ,				**A    ,				)		->    Union[str, Any]:
         super().__init__(**A     )

         snake_case				:    Union[str, Any]           =	image_size
         snake_case				:    int           =	patch_size
         snake_case				:    Optional[int]           =	num_channels
         snake_case				:    Any           =	embed_dim
         snake_case				:    List[Any]           =	depths
         snake_case				:    List[Any]           =	len(A     )
         snake_case				:    Dict           =	num_heads
         snake_case				:    Optional[int]           =	window_size
         snake_case				:    Optional[Any]           =	mlp_ratio
         snake_case				:    List[Any]           =	qkv_bias
         snake_case				:    Tuple           =	hidden_dropout_prob
         snake_case				:    List[Any]           =	attention_probs_dropout_prob
         snake_case				:    Optional[int]           =	drop_path_rate
         snake_case				:    str           =	hidden_act
         snake_case				:    Any           =	use_absolute_embeddings
         snake_case				:    Dict           =	layer_norm_eps
         snake_case				:    Optional[Any]           =	initializer_range
         snake_case				:    int           =	encoder_stride
         # we set the hidden_size attribute in order to make Swinv2 work with VisionEncoderDecoderModel
         # this indicates the channel dimension after the last stage of the model
         snake_case				:    Dict           =	int(embed_dim * 2 ** (len(A     ) - 1)     )
         snake_case				:    int           =	(0, 0, 0, 0)











def 						SCREAMING_SNAKE_CASE__ (   )  ->       Dict:
   snake_case				:    Optional[int]           =	[]
   snake_case				:    Tuple           =	1

   while len(lowercase					) < 1E6:
      constant.append(str(lowercase					)					)
      i += 1

   snake_case				:    int           =	"""""".join(lowercase					)

   return (
       int(constant[0]					)
       * int(constant[9]					)
       * int(constant[99]					)
       * int(constant[999]					)
       * int(constant[9999]					)
       * int(constant[99999]					)
       * int(constant[999999]					)
   )


if __name__ == "__main__":
       print(solution())





