
    NgU                         d dl mZ d dlmZ d dlZ G d dee          Zeeef         ZdefdZdefdZ	d	ej
        defd
Zd	ej
        defdZdS )    )Enum)UnionNc                       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
        N/var/www/html/ai-engine/env/lib/python3.11/site-packages/timm/layers/format.pyr   r      s"        DD
C
CCCr   r   fmtc                     t          |           } | t           j        u rd}n$| t           j        u rd}n| t           j        u rd}nd}|S )N)   )   )r   r   )r      )r   r
   r	   r   r   dims     r   get_spatial_dimr      sS    
++C
fj	
					Jr   c                 l    t          |           } | t           j        u rd}n| t           j        u rd}nd}|S )Nr   r   r   )r   r   r
   r   s     r   get_channel_dimr      s?    
++C
fk	
		Jr   xc                    |t           j        k    r|                     dddd          } n_|t           j        k    r*|                     d                              dd          } n%|t           j        k    r|                     d          } | S )Nr   r   r   r   )r   r   permuter
   flatten	transposer	   r   r   s     r   nchw_tor!   )   sw    
fkIIaAq!!	
		IIaLL""1a((	
		IIaLLHr   c                    |t           j        k    r|                     dddd          } na|t           j        k    r|                     dd          } n:|t           j        k    r*|                     dd                              dd          } | S )Nr   r   r   r   )r   r   r   r
   r   r	   r   r    s     r   nhwc_tor#   3   s{    
fkIIaAq!!	
		IIaOO	
		IIaOO%%a++Hr   )enumr   typingr   torchstrr   FormatTr   r   Tensorr!   r#   r   r   r   <module>r*      s                    S$    V

 
 
 
 
    u| &    u| &      r   