U
    ¯Ê¹j  ã                   @   s  d dl T d dlmZ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 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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)m*Z*m)Z) d dl+m+Z+ d dl,m-Z-m.Z. d dl/m0Z0m1Z1m0Z0 d dl2m3Z3m4Z4m5Z5m6Z6 d dl7m8Z8m9Z9m:Z:m;Z; d dl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZE d dlFmGZGmHZHmIZImJZJ d dlKmLZLmMZM d dlNmOZOmPZPmQZQmRZRmSZS d dlTmUZU d dlVmWZW d dlXmYZYmZZZ d dl[m\Z\m]Z]m^Z^m_Z_m`Z`maZa d dlbmcZc d dldmeZe d dlfmgZg d dlhmiZimjZjmkZkmlZlmmZmmnZnmoZo d dlpmqZqmrZr d dlsmtZtmuZumvZvmwZwmxZx d d lymzZzm{Z{m|Z|m}Z}m~Z~mZ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“ d d&l”m•Z•m–Z–m—Z—m˜Z˜m™Z™mšZš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m¨Z¨ d d(l©mªZªm«Z«m¬Z¬m­Z­ d d)l®m¯Z¯ d d*l°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» d d.l¼m½Z½m¾Z¾m¿Z¿mÀZÀ d d/lÁmÂZÂmÃZÃ d d0lÄmÅZÅmÆZÆ d d1lÇmÈZÈmÉZÉ d d2lÊmËZËmÌZÌmÍZÍmÎZÎ d3S )4é   )Ú*)Úadaptive_avgmax_pool2dÚselect_adaptive_pool2dÚAdaptiveAvgMaxPool2dÚSelectAdaptivePool2d)ÚAttentionPoolLatent)ÚAttentionPool2dÚRotAttentionPool2dÚRotaryEmbedding)Ú
BlurPool2d)ÚClassifierHeadÚcreate_classifierÚNormMlpClassifierHead)Ú
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)Ú
InplaceAbn)ÚLinear)ÚMixedConv2d)ÚMlpÚGluMlpÚGatedMlpÚSwiGLUÚSwiGLUPackedÚConvMlpÚGlobalResponseNormMlp)ÚNonLocalAttnÚBatNonLocalAttn)Ú	GroupNormÚ
GroupNorm1Ú	LayerNormÚLayerNorm2dÚRmsNorm)
Ú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)ÚSpaceToDepthModuleÚ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_N)ÏZactivationsZadaptive_avgmax_poolr   r   r   r   Zattention_poolr   Zattention_pool2dr   r	   r
   Z	blur_poolr   Ú
classifierr   r   r   Zcond_conv2dr   r   Úconfigr   r   r   r   r   r   r   r   r   r   r   Zconv_bn_actr   r   r   Z
create_actr   r    r!   r#   r"   r$   Zcreate_normr%   r&   Zcreate_norm_actr'   r(   Zdropr)   r*   r+   r,   Zecar-   r.   r/   r0   Zevo_normr1   r2   r3   r4   r5   r6   r7   r8   r9   Z	fast_normr:   r;   r<   r=   Zfilter_response_normr>   r?   Úformatr@   rA   rB   rC   rD   Zgather_exciterE   Zglobal_contextrF   ÚgridrG   rH   ZhelpersrI   rJ   rK   rL   rM   rN   Zinplace_abnrO   ZlinearrP   Zmixed_conv2drQ   ZmlprR   rS   rT   rU   rV   rW   rX   Znon_local_attnrY   rZ   Znormr[   r\   r]   r^   r_   Znorm_actr`   ra   rb   rc   rd   re   rf   rg   rh   ri   Úpaddingrj   rk   rl   Zpatch_dropoutrm   Zpatch_embedrn   ro   rp   Zpool2d_samerq   rr   Z	pos_embedrs   rt   Zpos_embed_relru   rv   rw   rx   ry   rz   r{   r|   Zpos_embed_sincosr}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   Zsqueeze_exciterˆ   r‰   rŠ   r‹   Zselective_kernelrŒ   Zseparable_convr�   rŽ   Zspace_to_depthr�   r�   r‘   Z
split_attnr’   Zsplit_batchnormr“   r”   Zstd_convr•   r–   r—   r˜   Ztest_time_poolr™   rš   Ztrace_utilsr›   rœ   Útypingr�   rž   Zweight_initrŸ   r    r¡   r¢   © r©   r©   úS/var/www/html/bwave/python/venv/lib/python3.8/site-packages/timm/layers/__init__.pyÚ<module>   sb   ,, $0(8