
"""simple docstring"""






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


_lowercase							 =							logging.get_logger(__name__)

_lowercase							 =							{
    "facebook/regnet-y-040": "https://huggingface.co/facebook/regnet-y-040/blob/main/config.json",
}

class 				__a    (   SCREAMING_SNAKE_CASE__					):



							'''simple docstring'''







							_lowerCamelCase				: Tuple					      =      'regnet'
							_lowerCamelCase				: List[str]					      =      ['x', 'y']
							def __init__(    self     ,						_lowerCamelCase=3     ,						_lowerCamelCase=32     ,						_lowerCamelCase=[128, 192, 512, 1_088]     ,						_lowerCamelCase=[2, 6, 12, 2]     ,						_lowerCamelCase=64     ,						_lowerCamelCase="y"     ,						_lowerCamelCase="relu"     ,						**_lowerCamelCase     ,						) ->       Any:




										'''simple docstring'''
										super().__init__(**a_					)
										if layer_type not in self.layer_types:
													raise ValueError(f'''layer_type={layer_type} is not one of {','.join(self.layer_types					)}'''					)
										__lowercase						      =					num_channels
										__lowercase						      =					embedding_size
										__lowercase						      =					hidden_sizes
										__lowercase						      =					depths
										__lowercase						      =					groups_width
										__lowercase						      =					layer_type
										__lowercase						      =					hidden_act
										# always downsample in the first stage
										__lowercase						      =					True







"""simple docstring"""






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							 =							logging.get_logger(__name__)

_lowercase							 =							{
    '''facebook/convnext-tiny-224''': '''https://huggingface.co/facebook/convnext-tiny-224/resolve/main/config.json''',
    # See all ConvNeXT models at https://huggingface.co/models?filter=convnext
}

class 				__a    (   __a				,      __a					):



							'''simple docstring'''







							_lowerCamelCase				: List[Any]					      =      """convnext"""
							def __init__(    self     ,						_lowerCamelCase=3     ,						_lowerCamelCase=4     ,						_lowerCamelCase=4     ,						_lowerCamelCase=None     ,						_lowerCamelCase=None     ,						_lowerCamelCase="gelu"     ,						_lowerCamelCase=0.02     ,						_lowerCamelCase=1e-12     ,						_lowerCamelCase=1e-6     ,						_lowerCamelCase=0.0     ,						_lowerCamelCase=224     ,						_lowerCamelCase=None     ,						_lowerCamelCase=None     ,						**_lowerCamelCase     ,						) ->       List[str]:




										'''simple docstring'''
										super().__init__(**_lowerCamelCase					)

										__lowercase						      =					num_channels
										__lowercase						      =					patch_size
										__lowercase						      =					num_stages
										__lowercase						      =					[96, 192, 384, 768] if hidden_sizes is None else hidden_sizes
										__lowercase						      =					[3, 3, 9, 3] if depths is None else depths
										__lowercase						      =					hidden_act
										__lowercase						      =					initializer_range
										__lowercase						      =					layer_norm_eps
										__lowercase						      =					layer_scale_init_value
										__lowercase						      =					drop_path_rate
										__lowercase						      =					image_size
										__lowercase						      =					["stem"] + [f'''stage{idx}''' for idx in range(1     ,						len(self.depths					) + 1					)]
										__lowercase      ,				__lowercase						      =					get_aligned_output_features_output_indices(
										    out_features=_lowerCamelCase     ,						out_indices=_lowerCamelCase     ,						stage_names=self.stage_names					)





class 				__a    (   __a					):



							'''simple docstring'''







							_lowerCamelCase				: str					      =      version.parse("""1.11"""					)
							@property
							def      SCREAMING_SNAKE_CASE	(    self					) ->       Mapping[str, Mapping[int, str]]:




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





							@property
							def      SCREAMING_SNAKE_CASE	(    self					) ->       float:




										'''simple docstring'''
										return 1e-5





