o
    ÓÙ¾iU  ã                   @   s†   d dl mZ d dlmZ d dlZG dd„ deeƒZeeef Zdefdd„Zdefd	d
„Z	dej
defdd„Zdej
defdd„ZdS )é    )ÚEnum)ÚUnionNc                   @   s   e Zd ZdZdZdZdZdS )ÚFormatÚNCHWÚNHWCÚNCLÚNLCN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   © r   r   úF/home/ubuntu/.local/lib/python3.10/site-packages/timm/layers/format.pyr      s
    r   Úfmtc                 C   sF   t | ƒ} | t ju rd}|S | t ju rd}|S | t ju rd}|S d}|S )N)é   )é   )r   r   )r   é   )r   r   r   r   ©r   Údimr   r   r   Úget_spatial_dim   s   

ú
üÿr   c                 C   s4   t | ƒ} | t ju rd}|S | t ju rd}|S d}|S )Nr   r   r   )r   r   r   r   r   r   r   Úget_channel_dim   s   

üÿr   Úxc                 C   sV   |t jkr|  dddd¡} | S |t jkr|  d¡ dd¡} | S |t jkr)|  d¡} | S )Nr   r   r   r   )r   r   Úpermuter   ÚflattenÚ	transposer   ©r   r   r   r   r   Únchw_to)   s   

ü
þ
r   c                 C   sZ   |t jkr|  dddd¡} | S |t jkr|  dd¡} | S |t jkr+|  dd¡ dd¡} | S )Nr   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   Únhwc_to3   s   

ü
þr   )Úenumr   Útypingr   ÚtorchÚstrr   ÚFormatTr   r   ÚTensorr   r   r   r   r   r   Ú<module>   s    
