a
    d                     @   s   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
  mZ ddlmZ eeZdee eee  eeeed	d
dZdS )zQ Position Embedding Utilities

Hacked together by / Copyright 2022 Ross Wightman
    N)ListTupleOptionalUnion   )	to_2tuplebicubicTF)new_sizeold_sizenum_prefix_tokensinterpolation	antialiasverbosec                 C   s6  | j d }|d |d  | }||kr:|d |d kr:| S |sXtt|| }	|	|	f}|r| d d d |f | d d |d f  }
} n
d |  }
} | j d }| d|d |d ddddd} tj| |||d} | dddddd|} |
d urtj	|
| gdd} tj
 s2|r2td| d	| d
 | S )Nr   r         )sizemoder   )ZdimzResized position embedding: z to .)shapeintmathsqrtZreshapeZpermuteFZinterpolatetorchcatZjitZis_scripting_loggerinfo)Zposembr	   r
   r   r   r   r   Znum_pos_tokensZnum_new_tokensZhwZposemb_prefixZ	embed_dim r   ^/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/timm/layers/pos_embed.pyresample_abs_pos_embed   s&    

,

$
r    )Nr   r   TF)__doc__loggingr   typingr   r   r   r   r   Ztorch.nn.functionalnnZ
functionalr   Zhelpersr   	getLogger__name__r   r   strboolr    r   r   r   r   <module>   s(   
     
