




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


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

lowercase__				:      Optional[Any]	   = {
    "facebook/convnextv2-tiny-1k-224": "https://huggingface.co/facebook/convnextv2-tiny-1k-224/resolve/main/config.json",
}




class       a__	( UpperCamelCase__       , UpperCamelCase__				):
     a		:      Tuple		 =     """convnextv2"""







     def __init__(     self  ,		A=3  ,		A=4  ,		A=4  ,		A=None  ,		A=None  ,		A="gelu"  ,		A=0.0_2  ,		A=1e-12  ,		A=0.0  ,		A=224  ,		A=None  ,		A=None  ,		**A  ,		)  ->   Optional[Any]:



          '''simple docstring'''



          super().__init__(**A			)

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







from __future__ import annotations

def  SCREAMING_SNAKE_CASE							(       __UpperCamelCase)      ->					list[int]:
     a     =				2
     a     =				[]
     while i * i <= n:
          if n % i:
               i += 1
          else:
               n //= i
               factors.append(__UpperCamelCase)
     if n > 1:
          factors.append(__UpperCamelCase)
     return factors


if __name__ == "__main__":
   import doctest

   doctest.testmod()

