
    ^j                        d Z ddlmZmZmZmZ ddl ddl ddlm	Z	m
Z
 ddlmZ d eej                  j                        v Zd eej                  j                        v Zd	 eej                  j                        v Zd
 eej                  j                        v Z ed#i derej,                  nederej,                  ned
erej0                  nedej2                  dej4                  dej6                  dej8                  dej:                  dej<                  dede de!de"de#derejH                  ne%derejL                  ne'de(Z) eerej,                  ne*erej,                  ne*erej0                  ne+erejH                  ne,erejL                  ne-e.      Z/e/e)fZ0e0D ]D  Z1e1je                  d	e1jg                  d             e1je                  de1jg                  d             F  ed#i derejh                  ne5derejh                  ne5d
erejl                  ne6dejn                  dejp                  dejr                  dejt                  de;dejx                  dejz                  de>de?de@deAdeBderej                  neDderej                  neFdeGdej                  ZI eerejh                  neJerejh                  neJerejl                  neKerej                  neLerej                  neMeN      ZOeOeIfZPePD ]D  Z1e1je                  d	e1jg                  d             e1je                  de1jg                  d             F d$dee   fdZQd$dee   fdZR	 d%dee   d!eeS   fd"ZTy )&zF Activation Factory
Hacked together by / Copyright 2020 Ross Wightman
    )CallableOptionalTypeUnion   )*)is_exportableis_scriptable)	LayerTypesilu	hardswishhardsigmoidmishswishrelurelu6
leaky_relueluceluselugelu	gelu_tanh
quick_gelusigmoidtanhhard_sigmoid
hard_swish	hard_mish)r   r   r   r   r   r   preluidentitynamec                     | syt        | t              r| S | j                         } t               st	               s| t
        v r	t
        |    S t        |    S )z Activation Function Factory
    Fetching activation fns by name with this function allows export or torch script friendly
    functions to be returned dynamically based on current config.
    N)
isinstancer   lowerr	   r
   
_ACT_FN_ME_ACT_FN_DEFAULTr!   s    a/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/layers/create_act.py
get_act_fnr)   \   sM    
 $!::<DO} :d##4      c                     | yt        | t              s| S | sy| j                         } t               st	               s| t
        v r	t
        |    S t        |    S )z Activation Layer Factory
    Fetching activation layers by name with this function allows export or torch script friendly
    functions to be returned dynamically based on current config.
    N)r#   strr$   r	   r
   _ACT_LAYER_ME_ACT_LAYER_DEFAULTr'   s    r(   get_act_layerr/   n   sS    
 |dC ::<DO}=  &&d##r*   Ninplacec                 v    t        |       }|y | |di |S 	  |dd|i|S # t        $ r  |di |cY S w xY w)Nr0    )r/   	TypeError)r!   r0   kwargs	act_layers       r(   create_act_layerr6      s_    
 d#I"6""#33F33 #"6""#s   	$ 88r2   )r   )N)U__doc__typingr   r   r   r   activationsactivations_meconfigr	   r
   r   dirtorchnn
functional	_has_silu_has_hardswish_has_hardsigmoid	_has_mishdictFr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   swish_memish_mehard_sigmoid_mehard_swish_mehard_mish_mer%   _ACT_FNSa
setdefaultgetSiLUSwishMishReLUReLU6	LeakyReLUELUPReLUCELUSELUGELUGELUTanh	QuickGELUSigmoidTanhHardsigmoidHardSigmoid	Hardswish	HardSwishHardMishIdentityr.   SwishMeMishMeHardSigmoidMeHardSwishMe
HardMishMer-   _ACT_LAYERSr)   r/   boolr6   r2   r*   r(   <module>rk      s   3 2   0 
 c%((--..	EHH$7$7 88 C(;(;$<< c%((--..	  %!&&5 $ 
	
 '' || 	
 
 
 
    
 #3  -q{{*!" #( (!&&8'"2,q{{-
 (	 3ALLn 56LLaeeL123
  5"''E 4 
	
 (( || 	  
 
 
    
  $4!"  .r||9#$ %& [[' , 7"''G6#3-r||; 01	 3ALLn 56LLaeeL123
!Xi( !$$+ $* #'#y!#$#r*   