




'''simple docstring'''

from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


a  :				int									=  logging.get_logger(__name__)






class 						a				(   _lowerCamelCase   ,     _lowerCamelCase     ):
				snake_case_      =		"maskformer-swin"

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


				def __init__(		self    :					Dict       ,				lowercase_    :					List[str]=224       ,				lowercase_    :					List[str]=4       ,				lowercase_    :					List[str]=3       ,				lowercase_    :					Tuple=96       ,				lowercase_    :					Any=[2, 2, 6, 2]       ,				lowercase_    :					Any=[3, 6, 12, 24]       ,				lowercase_    :					Any=7       ,				lowercase_    :					int=4.0       ,				lowercase_    :					str=True       ,				lowercase_    :					List[str]=0.0       ,				lowercase_    :					int=0.0       ,				lowercase_    :					Optional[Any]=0.1       ,				lowercase_    :					Optional[int]="gelu"       ,				lowercase_    :					Optional[Any]=False       ,				lowercase_    :					Tuple=0.02       ,				lowercase_    :					int=1e-5       ,				lowercase_    :					Any=None       ,				lowercase_    :					int=None       ,				**lowercase_    :					Tuple       ,				):
									super().__init__(**lowercase_					)

									snake_case_									=				image_size
									snake_case_									=				patch_size
									snake_case_									=				num_channels
									snake_case_									=				embed_dim
									snake_case_									=				depths
									snake_case_									=				len(lowercase_					)
									snake_case_									=				num_heads
									snake_case_									=				window_size
									snake_case_									=				mlp_ratio
									snake_case_									=				qkv_bias
									snake_case_									=				hidden_dropout_prob
									snake_case_									=				attention_probs_dropout_prob
									snake_case_									=				drop_path_rate
									snake_case_									=				hidden_act
									snake_case_									=				use_absolute_embeddings
									snake_case_									=				layer_norm_eps
									snake_case_									=				initializer_range
									# 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
									snake_case_									=				int(embed_dim * 2 ** (len(lowercase_					) - 1)					)
									snake_case_									=				['''stem'''] + [F"stage{idx}" for idx in range(1       ,				len(lowercase_					) + 1					)]
									snake_case_			,snake_case_									=				get_aligned_output_features_output_indices(
									    out_features=lowercase_       ,				out_indices=lowercase_       ,				stage_names=self.stage_names					)





snake_case				:    str       				=     '''
# Transformers installation
! pip install transformers datasets
# To install from source instead of the last release, comment the command above and uncomment the following one.
# ! pip install git+https://github.com/huggingface/transformers.git
'''

snake_case				:    List[Any]       				=     [{'''type''': '''code''', '''content''': INSTALL_CONTENT}]
snake_case				:    int       				=     {
    '''{processor_class}''': '''FakeProcessorClass''',
    '''{model_class}''': '''FakeModelClass''',
    '''{object_class}''': '''FakeObjectClass''',
}





