
    ^j                        d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZ ddlmZ  edi dej2                  dej2                  d	ej4                  d
ede	de
dedededededededededededeZej9                         D  ch c]  \  } }|	 c}} Zd Zd Zyc c}} w )z Norm Layer Factory

Create norm modules by string (to mirror create_act and creat_norm-act fns)

Copyright 2022 Ross Wightman
    N)Type   )	GroupNorm
GroupNorm1	LayerNormLayerNorm2dLayerNormFp32LayerNorm2dFp32RmsNorm	RmsNorm2dRmsNormFp32RmsNorm2dFp32
SimpleNormSimpleNorm2dSimpleNormFp32SimpleNorm2dFp32)FrozenBatchNorm2d	batchnormbatchnorm2dbatchnorm1d	groupnorm
groupnorm1	layernormlayernorm2dlayernormfp32layernorm2dfp32rmsnorm	rmsnorm2drmsnormfp32rmsnorm2dfp32
simplenormsimplenorm2dsimplenormfp32simplenorm2dfp32frozenbatchnorm2dc                 .    t        |       } ||fi |}|S )N)get_norm_layer)
layer_namenum_featureskwargslayerlayer_instances        b/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/layers/create_norm.pycreate_norm_layerr.   6   s!    :&E<262N    c                    | y t        | t        t        t        j                  t
        j                  f      sJ i }t        | t
        j                        r'|j                  | j                         | j                  } t        | t              r-| sy | j                  dd      j                         }t        |   } n| } |rt        j                  | fi |} | S )N_ )
isinstancetypestrtypesFunctionType	functoolspartialupdatekeywordsfuncreplacelower	_NORM_MAP)
norm_layernorm_kwargsr(   s      r-   r'   r'   <   s    j4e.@.@)BSBS"TUUUK *i//0:../__
*c"''R0668
z*

&&zA[A
r/    ) __doc__r8   r6   typingr   torch.nnnnnormr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   torchvision.ops.miscr   dictBatchNorm2dBatchNorm1dr?   items_NORM_TYPESr.   r'   )nms   00r-   <module>rP      s#           3 nn  	
      $         "!" &#$ (%	( '__./TQq/ 0s   *C