
    kh                     &   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 ddlmZ  eej&                  ej&                  ej(                  ee	e
eeeeee      Zej-                         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RmsNorm	RmsNorm2d
SimpleNormSimpleNorm2d)FrozenBatchNorm2d)	batchnormbatchnorm2dbatchnorm1d	groupnorm
groupnorm1	layernormlayernorm2drmsnorm	rmsnorm2d
simplenormsimplenorm2dfrozenbatchnorm2dc                 .    t        |       } ||fi |}|S )N)get_norm_layer)
layer_namenum_featureskwargslayerlayer_instances        S/var/www/teggl/fontify/venv/lib/python3.12/site-packages/timm/layers/create_norm.pycreate_norm_layerr"   !   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__r,   r*   typingr   torch.nnnnnormr   r   r   r   r	   r
   r   r   torchvision.ops.miscr   dictBatchNorm2dBatchNorm1dr3   items_NORM_TYPESr"   r   )nms   00r!   <module>rC      s        m m m 2nn'	 '__./TQq/ 0s   6B