o
    پi                     @   s  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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(m)Z)m*Z* d dl+m,Z,m+Z+ d dl-m.Z.m/Z/m0Z0 d dl1m2Z2m3Z3m4Z4 d dl5m6Z6m5Z5 d dl7m7Z7 d dl8m9Z9m:Z: d dl;m<Z<m=Z=m<Z< d dl>m?Z?m@Z@mAZAmBZB d dlCmDZDmEZEmFZFmGZG d dlHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQ d dlRmSZSmTZTmUZUmVZV d dlWmXZXmYZY d dlZm[Z[m\Z\m]Z]m^Z^m_Z_ d dl`maZa d dlbmcZc d dldmeZemfZf d dlgmhZhmiZimjZjmkZkmlZlmmZm d dlnmoZompZp d dlqmrZr d dlsmtZtmuZu d dlvmwZw d d lxmyZy d d!lzm{Z{m|Z|m}Z}m~Z~mZmZmZ d d"lmZmZ d d#lmZmZmZmZmZmZmZmZ d d$lmZmZmZmZmZmZmZmZmZmZ d d%lmZmZmZ d d&lmZ d d'lmZmZmZmZ d d(lmZ d d)lmZmZ d d*lmZmZ d d+lmZmZmZmZmZmZmZmZ d d,lmZmZmZmZmZmZmZmZmZmZmZmZ d d-lmZmZmZmZ d d.lmZ d d/lmZmZ d d0lmZmZ d d1lmZ d d2lmZmZ d d3lmZmZmZmZ d d4lmZmZ d d5lmZmZ d d6lmZmZ d d7lmZmZmZmZmZmZ d8S )9   )*)adaptive_avgmax_pool2dselect_adaptive_pool2dAdaptiveAvgMaxPool2dSelectAdaptivePool2d)	AttentionAttentionRopemaybe_add_mask)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set_reentrant_ckptuse_reentrant_ckpt)
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_layerr1   )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
SimpleNormSimpleNorm2d)
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PatchEmbedInterpolatorresample_patch_embed)global_pool_nlc)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   	attentionr   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#   r%   r$   conv_bn_actr&   r'   r(   
create_actr)   r*   r+   r-   r,   r.   create_normr/   r0   create_norm_actr1   r2   dropr3   r4   r5   r6   ecar7   r8   r9   r:   evo_normr;   r<   r=   r>   r?   r@   rA   rB   rC   	fast_normrD   rE   rF   rG   filter_response_normrH   rI   formatrJ   rK   rL   rM   rN   gather_exciterO   global_contextrP   gridrQ   rR   helpersrS   rT   rU   rV   rW   rX   hybrid_embedrY   rZ   inplace_abnr[   layer_scaler\   r]   linearr^   mixed_conv2dr_   mlpr`   ra   rb   rc   rd   re   rf   non_local_attnrg   rh   normri   rj   rk   rl   rm   rn   ro   rp   norm_actrq   rr   rs   rt   ru   rv   rw   rx   ry   rz   paddingr{   r|   r}   patch_dropoutr~   patch_embedr   r   r   r   pool1dr   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    r   r   H/home/ubuntu/.local/lib/python3.10/site-packages/timm/layers/__init__.py<module>   sn    4, $(0(8$