ó
    RÐ¦i2  ã                   ó’  • S SK Jr  S SKJr  S SKJrJr  SSKJr  SSKJ	r	  SSK
Jr  SSKJrJrJrJr  SS	KJrJr  SS
KJrJr  / rS rSS jr\" \" SS9\" SS9\" SS9\" SS9\" SS9\" SS9S.5      r\SS\4S jj5       r\SS\4S jj5       r\SS\4S jj5       r\SS\4S jj5       r\SS\4S jj5       r\SS\4S jj5       r g)é    )ÚpartialN©ÚIMAGENET_DEFAULT_MEANÚIMAGENET_DEFAULT_STDé   )Úbuild_model_with_cfg)Úpretrained_cfg_for_features)ÚSqueezeExcite)Údecode_arch_defÚresolve_act_layerÚresolve_bn_argsÚround_channels)Úregister_modelÚgenerate_default_cfgs)ÚMobileNetV3ÚMobileNetV3Featuresc                 óž  • Sn[        [        S[        R                  [        S9n[        S[        U5      US[        [        R                  40 [        U5      D6[        US5      US.UD6nSn[        nSn	UR                  S	S5      (       a
  S
nSn	[        n[        UUU 4U(       + U	S.UD6n
U(       a  [        U
R                  5      U
l        U
$ )z|Creates a hardcorenas model

Ref impl: https://github.com/Alibaba-MIIL/HardCoReNAS
Paper: https://arxiv.org/abs/2102.11646

i   Úhard_sigmoid)Ú
gate_layerÚforce_act_layerÚrd_round_fné    Ú
hard_swish)Ú
block_argsÚnum_featuresÚ	stem_sizeÚ
norm_layerÚ	act_layerÚse_layerFNÚfeatures_onlyT)Únum_classesr   Úglobal_poolÚ	head_convÚ	head_biasr"   )Úpretrained_strictÚkwargs_filter© )r   r
   ÚnnÚReLUr   Údictr   ÚBatchNorm2dr   r   r   Úpopr   r   r	   Údefault_cfg)Ú
pretrainedÚvariantÚarch_defÚkwargsr   r   Úmodel_kwargsr    Ú	model_clsr&   Úmodels              ÚV/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/timm/models/hardcorenas.pyÚ_gen_hardcorenasr6      sè   € ð €LÜ”}°ÔQS×QXÑQXÔftÑu€HÜð Ü" 8Ó,Ø!ØÜœ2Ÿ>™>ÑE¬_¸VÓ-DÑEÜ# F¨LÓ9Øñð ñ€Lð €MÜ€IØ€MØ×Ñ˜¨×/Ñ/ØˆØoˆÜ'ˆ	Ü ØØØðð ,Ô+Ø#ñð ñ€Eö Ü7¸×8IÑ8IÓJˆÔØ€Ló    c                 ó2   • U SSSSS[         [        SSSS	.UE$ )
Niè  )é   éà   r:   )é   r;   g      ì?ÚbilinearÚ	conv_stemÚ
classifierz
apache-2.0)Úurlr!   Ú
input_sizeÚ	pool_sizeÚcrop_pctÚinterpolationÚmeanÚstdÚ
first_convr>   Úlicenser   )r?   r1   s     r5   Ú_cfgrH   7   s3   € à 4°}ÐSYØ¨JÜ%Ô.BØ!°Øñð ðð r7   ztimm/)Ú	hf_hub_id)zhardcorenas_a.miil_green_in1kzhardcorenas_b.miil_green_in1kzhardcorenas_c.miil_green_in1kzhardcorenas_d.miil_green_in1kzhardcorenas_e.miil_green_in1kzhardcorenas_f.miil_green_in1kÚreturnc                 óN   • S/SS/SS/SS/SS/S	S
/S//n[        SU SUS.UD6nU$ )zhardcorenas_A Úds_r1_k3_s1_e1_c16_nreÚir_r1_k5_s2_e3_c24_nreúir_r1_k5_s1_e3_c24_nre_se0.25Úir_r1_k5_s2_e3_c40_nreúir_r1_k5_s1_e6_c40_nre_se0.25úir_r1_k5_s2_e6_c80_se0.25úir_r1_k5_s1_e6_c80_se0.25úir_r1_k5_s1_e6_c112_se0.25úir_r1_k5_s2_e6_c192_se0.25úir_r1_k5_s1_e6_c192_se0.25Úcn_r1_k1_s1_c960Úhardcorenas_a©r.   r/   r0   r'   ©r6   ©r.   r1   r0   r4   s       r5   rW   rW   L   sd   € ð *Ð*Ð-EÐGfÐ,gØ)Ð+JÐKØ,Ð.IÐJØ-Ð/KÐLØ-Ð/KÐLÐOaÐNbð	d€Hô
 Ði¨
¸OÐV^ÑiÐbhÑi€EØ€Lr7   c                 óN   • S// SQ/ SQ/ SQ/ SQ/ SQS//n[        S
U SUS	.UD6nU$ )zhardcorenas_B rL   )rM   rN   Úir_r1_k3_s1_e3_c24_nre)rO   Úir_r1_k5_s1_e3_c40_nrer]   )Úir_r1_k5_s2_e3_c80Úir_r1_k5_s1_e3_c80Úir_r1_k3_s1_e3_c80r`   )Úir_r1_k5_s1_e3_c112Úir_r1_k3_s1_e3_c112rb   rb   ©rT   rU   zir_r1_k3_s1_e3_c192_se0.25rV   Úhardcorenas_brX   r'   rY   rZ   s       r5   rd   rd   X   sE   € ð *Ð*ÚeÚ^ÚhÚlÚjØ#Ð$ð&€Hô Ði¨
¸OÐV^ÑiÐbhÑi€EØ€Lr7   c                 óN   • S/SS// SQ/ SQ/ SQ/ SQS//n[        SU S	US
.UD6nU$ )zhardcorenas_C rL   rM   rN   )rO   r]   r]   r]   )Úir_r1_k5_s2_e4_c80rR   r`   r`   )rS   rb   rb   rb   rc   rV   Úhardcorenas_crX   r'   rY   rZ   s       r5   rg   rg   f   sM   € ð *Ð*Ð-EÐGfÐ,gò+âoÚsÚjØ#Ð$ð&€Hô Ði¨
¸OÐV^ÑiÐbhÑi€EØ€Lr7   c                 óN   • S/SS// SQ/ SQ/ SQ/ SQS//n[        SU S	US
.UD6nU$ )zhardcorenas_D rL   úir_r1_k5_s2_e3_c24_nre_se0.25rN   )zir_r1_k5_s2_e3_c40_nre_se0.25úir_r1_k5_s1_e4_c40_nre_se0.25úir_r1_k3_s1_e3_c40_nre_se0.25)úir_r1_k5_s2_e4_c80_se0.25úir_r1_k3_s1_e3_c80_se0.25rm   rm   )zir_r1_k3_s1_e4_c112_se0.25zir_r1_k5_s1_e4_c112_se0.25úir_r1_k3_s1_e3_c112_se0.25úir_r1_k5_s1_e3_c112_se0.25©rT   rU   rU   úir_r1_k3_s1_e6_c192_se0.25rV   Úhardcorenas_drX   r'   rY   rZ   s       r5   rr   rr   t   sR   € ð *Ð*Ð-LÐNmÐ,nÚsò.ò/ò/Ø1CÐ0DðF€Hô Ði¨
¸OÐV^ÑiÐbhÑi€EØ€Lr7   c                 óN   • S/SS// SQSS// SQ/ SQS	//n[        SU S
US.UD6nU$ )zhardcorenas_E rL   ri   rN   )úir_r1_k5_s2_e6_c40_nre_se0.25rj   rj   rk   rl   zir_r1_k3_s1_e6_c80_se0.25)rS   rS   rS   ro   rp   rV   Úhardcorenas_erX   r'   rY   rZ   s       r5   ru   ru   ƒ   sX   € ð *Ð*Ð-LÐNmÐ,nò2Ø4OÐQlÐ3mò/ò/Ø1CÐ0DðF€Hô Ði¨
¸OÐV^ÑiÐbhÑi€EØ€Lr7   c                 óN   • S/SS/SS// SQ/ SQ/ SQS	//n[        SU S
US.UD6nU$ )zhardcorenas_F rL   ri   rN   rt   rP   )rQ   rR   rm   rm   )zir_r1_k3_s1_e6_c112_se0.25rS   rS   rn   )rT   rU   rq   rq   rV   Úhardcorenas_frX   r'   rY   rZ   s       r5   rw   rw   ‘   sX   € ð *Ð*Ð-LÐNmÐ,nØ0Ð2QÐRò.ò/ò/Ø1CÐ0DðF€Hô Ði¨
¸OÐV^ÑiÐbhÑi€EØ€Lr7   )Ú )F)!Ú	functoolsr   Útorch.nnr(   Ú	timm.datar   r   Ú_builderr   r	   Ú_efficientnet_blocksr
   Ú_efficientnet_builderr   r   r   r   Ú	_registryr   r   Úmobilenetv3r   r   Ú__all__r6   rH   Údefault_cfgsrW   rd   rg   rr   ru   rw   r'   r7   r5   Ú<module>rƒ      s  ðÝ å ç AÝ *Ý 1Ý /ß fÓ fß <ß 9à
€ò$ôNñ %Ù%)°GÑ%<Ù%)°GÑ%<Ù%)°GÑ%<Ù%)°GÑ%<Ù%)°GÑ%<Ù%)°GÑ%<ñ&ó €ð ñ°ô ó ðð ñ
°ô 
ó ð
ð ñ
°ô 
ó ð
ð ñ°ô ó ðð ñ
°ô 
ó ð
ð ñ°ô ó ñr7   