Ë
    éÓ^jy
  ã                   ó†  — d Z ddlZddlZddlmZmZmZmZ ddlZddl	m
c mZ ddlmZ  ej                  e«      Zej$                  j&                  e	 	 	 	 	 ddej(                  dee   deee      d	ed
ededefd„«       «       Zej$                  j&                  e	 	 	 ddej(                  dee   d
ededef
d„«       «       Zy)zQ Position Embedding Utilities

Hacked together by / Copyright 2022 Ross Wightman
é    N)ÚListÚTupleÚOptionalÚUnioné   )Úregister_notrace_functionÚposembÚnew_sizeÚold_sizeÚnum_prefix_tokensÚinterpolationÚ	antialiasÚverbosec                 óæ  — | j                   d   }|d   |d   z  |z   }||k(  r|d   |d   k(  r| S |€%t        t        j                  ||z
  «      «      }	|	|	f}|r| d d …d |…f   | d d …|d …f   } }
nd | } }
| j                   d   }| j                  }| j                  «       } | j                  d|d   |d   d«      j                  dddd«      } t        j                  | |||¬«      } | j                  dddd«      j                  dd|«      } | j                  |«      } |
�t        j                  |
| gd¬«      } t        j                  j                  «       s|rt        j!                  d|› d	|› d
�«       | S )Nr   r   éÿÿÿÿé   é   ©ÚsizeÚmoder   )ÚdimúResized position embedding: ú to ú.)ÚshapeÚintÚmathÚsqrtÚdtypeÚfloatÚreshapeÚpermuteÚFÚinterpolateÚtoÚtorchÚcatÚjitÚis_scriptingÚ_loggerÚinfo)r	   r
   r   r   r   r   r   Únum_pos_tokensÚnum_new_tokensÚhwÚposemb_prefixÚ	embed_dimÚ
orig_dtypes                ú`/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/layers/pos_embed.pyÚresample_abs_pos_embedr3      sˆ  € ð —\‘\ !‘_€NØ˜a‘[ 8¨A¡;Ñ.Ð1BÑB€NØ˜Ò'¨H°Q©K¸8ÀA¹;Ò,FØˆàÐÜ”—‘˜>Ð,=Ñ=Ó>Ó?ˆØ�r�6ˆáØ &¢qÐ*<Ð+<Ð*<Ð'<Ñ =¸vÂaÐIZÑI[ÐF[Ñ?\�v‰à $ f�vˆð —‘˜RÑ €IØ—‘€JØ�\‰\‹^€FØ�^‰^˜A˜x¨™{¨H°Q©K¸Ó<×DÑDÀQÈÈ1ÈaÓP€FÜ�]‰]˜6¨°}ÐPYÔZ€FØ�^‰^˜A˜q ! QÓ'×/Ñ/°°2°yÓA€FØ�Y‰Y�zÓ"€Fð Ð Ü—‘˜M¨6Ð2¸Ô:ˆä�9‰9×!Ñ!Ô#©Ü�‰Ð3°H°:¸TÀ(ÀÈ1ÐMÔNà€Mó    c                 ó:  — |d   | j                   d   k(  r|d   | j                   d   k(  r| S | j                  }| j                  «       } | j                  d| j                   d   | j                   d   | j                   d   «      j	                  dddd«      } t        j                  | |||¬«      } | j	                  dddd«      j                  |«      } t        j                  j                  «       s+|r)t        j                  d	| j                   dd › d
|› d�«       | S )Nr   éýÿÿÿr   éþÿÿÿr   r   r   r   r   r   r   )r   r   r    r!   r"   r#   r$   r%   r&   r(   r)   r*   r+   )r	   r
   r   r   r   r1   s         r2   Úresample_abs_pos_embed_nhwcr8   >   sÿ   € ð ��{�f—l‘l 2Ñ&Ò&¨8°A©;¸&¿,¹,ÀrÑ:JÒ+JØˆà—‘€JØ�\‰\‹^€FØ�^‰^˜A˜vŸ|™|¨BÑ/°·±¸bÑ1AÀ6Ç<Á<ÐPRÑCSÓT×\Ñ\Ð]^Ð`aÐcdÐfgÓh€FÜ�]‰]˜6¨°}ÐPYÔZ€FØ�^‰^˜A˜q ! QÓ'×*Ñ*¨:Ó6€Fä�9‰9×!Ñ!Ô#©Ü�‰Ð3°F·L±LÀÀBÐ4GÐ3HÈÈXÈJÐVWÐXÔYà€Mr4   )Nr   ÚbicubicTF)r9   TF)Ú__doc__Úloggingr   Útypingr   r   r   r   r&   Útorch.nn.functionalÚnnÚ
functionalr#   Ú_fxr   Ú	getLoggerÚ__name__r*   ÚfxÚwrapÚTensorr   ÚstrÚboolr3   r8   © r4   r2   ú<module>rI      s$  ðñó Û ß /Ó /ã ß Ð å *à
ˆ'×
Ñ
˜HÓ
%€ð ‡�‡�Øð )-Ø!"Ø&ØØñ(Ø—‘ð(à�s‘)ð(ð ˜4 ™9Ñ%ð(ð ð	(ð
 ð(ð ð(ð ò(ó ó ð(ðV ‡�‡�Øð 'ØØñØ—‘ðà�s‘)ðð ðð ð	ð
 òó ó ñr4   