
    NgQ                         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 ddlmZ  eej        ej        ej        ee	e
eeee
  
        Zd e                                D             Zd	 Zd
 ZdS )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)FrozenBatchNorm2d)
	batchnormbatchnorm2dbatchnorm1d	groupnorm
groupnorm1	layernormlayernorm2drmsnorm	rmsnorm2dfrozenbatchnorm2dc                     h | ]\  }}|S  r   ).0nms      S/var/www/html/ai-engine/env/lib/python3.11/site-packages/timm/layers/create_norm.py	<setcomp>r      s    ///TQq///    c                 6    t          |           } ||fi |}|S )N)get_norm_layer)
layer_namenum_featureskwargslayerlayer_instances        r   create_norm_layerr%      s,    :&&EU<22622Nr   c                    | d S t          | t          t          t          j        t
          j        f          sJ i }t          | t
          j                  r!|                    | j                   | j	        } t          | t                    r:| sd S | 
                    dd                                          }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    tj4e.@)BS"TUUUUUK *i/00 %:.///_
*c""   	4''R006688
z*


 B&zAA[AA
r   )__doc__r.   r,   typingr   torch.nnnnnormr   r   r   r   r	   r
   torchvision.ops.miscr   dictBatchNorm2dBatchNorm1dr5   items_NORM_TYPESr%   r   r   r   r   <module>rC      s                     S S S S S S S S S S S S S S S S 2 2 2 2 2 2Dn'  	 0/Y__..///      r   