
    Ng                     b   d dl T d dlmZmZmZmZ d dlmZmZm	Z	 d dl
mZ d dlmZmZmZ d dlmZmZ d dlmZmZmZmZ d dlmZmZ d d	lmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ d d
l%m&Z&m%Z% d dl'm(Z(m)Z)m*Z* d dl+m,Z,m-Z-m.Z. d dl/m0Z0m/Z/ d dl1m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6m7Z7m6Z6 d dl8m9Z9m:Z:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZA d dlBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZK d dlLmMZMmNZNmOZOmPZP d dlQmRZRmSZS d dlTmUZUmVZVmWZWmXZXmYZY d dlZm[Z[ d dl\m]Z] d dl^m_Z_m`Z` d dlambZbmcZcmdZdmeZemfZfmgZg d dlhmiZimjZj d dlkmlZl d dlmmnZnmoZo d dlpmqZq d dlrmsZs d d ltmuZumvZvmwZwmxZxmyZymzZzm{Z{ d d!l|m}Z}m~Z~ d d"lmZmZmZmZmZmZ d d#lmZmZmZmZmZmZmZmZmZmZ d d$lmZmZmZ d d%lmZ d d&lmZmZmZ d d'lmZmZ d d(lmZmZ d d)lmZmZmZmZmZmZmZmZ d d*lmZmZmZmZmZmZmZmZmZmZmZmZ d d+lmZmZmZmZ d d,lmZ d d-lmZmZ d d.lmZmZ d d/lmZ d d0lmZmZ d d1lmZmZmZmZ d d2lmZmZ d d3lmZmZ d d4lmZmZ d d5lmZmZmZmZmZmZ d6S )7   )*)adaptive_avgmax_pool2dselect_adaptive_pool2dAdaptiveAvgMaxPool2dSelectAdaptivePool2d)MultiQueryAttention2dAttention2dMultiQueryAttentionV2)AttentionPoolLatent)AttentionPool2dRotAttentionPool2dRotaryEmbedding)
BlurPool2d	create_aa)create_classifierClassifierHeadNormMlpClassifierHeadClNormMlpClassifierHead)
CondConv2dget_condconv_initializer)	is_exportableis_scriptable	is_no_jituse_fused_attnset_exportableset_scriptable
set_no_jitset_layer_configset_fused_attn)
Conv2dSameconv2d_same)ConvNormActConvNormActAa	ConvBnAct)create_act_layerget_act_layer
get_act_fn)get_attncreate_attn)create_conv2d)get_norm_layercreate_norm_layer)get_norm_act_layercreate_norm_act_layerr-   )DropBlock2dDropPathdrop_block_2d	drop_path)	EcaModule
CecaModuleEfficientChannelAttnCircularEfficientChannelAttn)	EvoNorm2dB0EvoNorm2dB1EvoNorm2dB2EvoNorm2dS0EvoNorm2dS0aEvoNorm2dS1EvoNorm2dS1aEvoNorm2dS2EvoNorm2dS2a)is_fast_normset_fast_normfast_group_normfast_layer_norm)FilterResponseNormTlu2dFilterResponseNormAct2d)Formatget_channel_dimget_spatial_dimnchw_tonhwc_to)GatherExcite)GlobalContext)ndgridmeshgrid)	to_ntuple	to_2tuple	to_3tuple	to_4tuplemake_divisibleextend_tuple)HybridEmbedHybridEmbedWithSize)
InplaceAbn)
LayerScaleLayerScale2d)Linear)MixedConv2d)MlpGluMlpGatedMlpSwiGLUSwiGLUPackedConvMlpGlobalResponseNormMlp)NonLocalAttnBatNonLocalAttn)	GroupNorm
GroupNorm1	LayerNormLayerNorm2dRmsNorm	RmsNorm2d)
BatchNormAct2dGroupNormActGroupNorm1ActLayerNormActLayerNormAct2dSyncBatchNormActconvert_sync_batchnormFrozenBatchNormAct2dfreeze_batch_norm_2dunfreeze_batch_norm_2d)get_paddingget_same_paddingpad_same)PatchDropout)
PatchEmbedPatchEmbedWithSizeresample_patch_embed)AvgPool2dSamecreate_pool2d)resample_abs_pos_embedresample_abs_pos_embed_nhwc)	RelPosMlp
RelPosBiasRelPosBiasTfgen_relative_position_indexgen_relative_log_coordsresize_rel_pos_bias_table resize_rel_pos_bias_table_simpleresize_rel_pos_bias_table_levit)pixel_freq_bands
freq_bandsbuild_sincos2d_pos_embedbuild_fourier_pos_embedbuild_rotary_pos_embedapply_rot_embedapply_rot_embed_catapply_rot_embed_listapply_keep_indices_nlcFourierEmbedr   RotaryEmbeddingCat)SEModuleSqueezeExciteEffectiveSEModuleEffectiveSqueezeExcite)SelectiveKernel)SeparableConv2dSeparableConvNormAct)SpaceToDepthDepthToSpace)	SplitAttn)SplitBatchNorm2dconvert_splitbn_model)	StdConv2dStdConv2dSameScaledStdConv2dScaledStdConv2dSame)TestTimePoolHeadapply_test_time_pool)_assert_float_to_int)	LayerTypePadType)trunc_normal_trunc_normal_tf_variance_scaling_lecun_normal_init_weight_jaxinit_weight_vitN)activationsadaptive_avgmax_poolr   r   r   r   attention2dr   r	   r
   attention_poolr   attention_pool2dr   r   r   	blur_poolr   r   
classifierr   r   r   r   cond_conv2dr   r   configr   r   r   r   r   r   r   r   r   r!   r    conv_bn_actr"   r#   r$   
create_actr%   r&   r'   r)   r(   r*   create_normr+   r,   create_norm_actr-   r.   dropr/   r0   r1   r2   ecar3   r4   r5   r6   evo_normr7   r8   r9   r:   r;   r<   r=   r>   r?   	fast_normr@   rA   rB   rC   filter_response_normrD   rE   formatrF   rG   rH   rI   rJ   gather_exciterK   global_contextrL   gridrM   rN   helpersrO   rP   rQ   rR   rS   rT   hybrid_embedrU   rV   inplace_abnrW   layer_scalerX   rY   linearrZ   mixed_conv2dr[   mlpr\   r]   r^   r_   r`   ra   rb   non_local_attnrc   rd   normre   rf   rg   rh   ri   rj   norm_actrk   rl   rm   rn   ro   rp   rq   rr   rs   rt   paddingru   rv   rw   patch_dropoutrx   patch_embedry   rz   r{   pool2d_samer|   r}   	pos_embedr~   r   pos_embed_relr   r   r   r   r   r   r   r   pos_embed_sincosr   r   r   r   r   r   r   r   r   r   r   squeeze_exciter   r   r   r   selective_kernelr   separable_convr   r   space_to_depthr   r   
split_attnr   split_batchnormr   r   std_convr   r   r   r   test_time_poolr   r   trace_utilsr   r   typingr   r   weight_initr   r   r   r   r   r        P/var/www/html/ai-engine/env/lib/python3.11/site-packages/timm/layers/__init__.py<module>r      s       _ _ _ _ _ _ _ _ _ _ _ _ R R R R R R R R R R / / / / / / R R R R R R R R R R , , , , , , , , i i i i i i i i i i i i = = = = = = = =Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q 0 0 0 0 0 0 0 0 > > > > > > > > > > C C C C C C C C C C . . . . . . . . ( ( ( ( ( ( : : : : : : : : Z Z Z Z Z Z Z Z Z Z A A A A A A A A A A A A Z Z Z Z Z Z Z Z Z Z Z ZT T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T T R R R R R R R R N N N N N N N N N N N N N N ' ' ' ' ' ' ) ) ) ) ) ) " " " " " " " " ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] : : : : : : : : # # # # # # 1 1 1 1 1 1 1 1       % % % % % % \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 9 9 9 9 9 9 9 9 S S S S S S S S S S S S S S S Sq q q q q q q q q q q q q q q q q q q q q q q q < < < < < < < < < < ' ' ' ' ' ' M M M M M M M M M M 5 5 5 5 5 5 5 5 J J J J J J J Ja a a a a a a a a a a a a a a a a a a a6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 _ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ - - - - - - A A A A A A A A 6 6 6 6 6 6 6 6 ! ! ! ! ! ! D D D D D D D D T T T T T T T T T T T T B B B B B B B B / / / / / / / / & & & & & & & &% % % % % % % % % % % % % % % % % %r   