
    ^j                     z   d dl mZmZmZmZmZmZmZ d dlZd dlm	Z	 	 d dl
mZ d dl
mZ dZg dZ e       Zd	ee	j(                     fd
Zd	ee	j(                     fdZd Z e       Zd ZdefdZd Zde	j(                  deee   ee   f   fdZde	j(                  deeeef   ee   f   fdZy# e$ r dZY w xY w)    )CallableDictListOptionalUnionTupleTypeN)nn)create_feature_extractor)get_graph_node_namesTF)register_notrace_moduleis_notrace_moduleget_notrace_modulesregister_notrace_functionis_notrace_functionget_notrace_functionsr   r   modulec                 0    t         j                  |        | S )zq
    Any module not under timm.models.layers should get this decorator if we don't want to trace through it.
    )_leaf_modulesaddr   s    Z/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/layers/_fx.pyr   r      s     fM    c                     | t         v S N)r   r   s    r   r   r   &   s    ]""r   c                       t        t              S r   )listr    r   r   r   r   *   s    r   c                 0    t         j                  |        | S r   )_autowrap_functionsr   )
name_or_fns    r   r   r   2   s    J'r   funcc                     | t         v S r   )r    )r"   s    r   r   r   7   s    &&&r   c                       t        t              S r   )r   r    r   r   r   r   r   ;   s    #$$r   modelreturnc                 V    t        | t        t              t        t              d      S )Nleaf_modulesautowrap_functionstracer_kwargs)_get_graph_node_namesr   r   r    )r%   s    r   r   r   ?   s(      /"&':";
 r   return_nodesc                 r    t         sJ d       t        | |t        t              t        t              d      S )NzKPlease update to PyTorch 1.10+, torchvision 0.11+ for FX feature extractionr(   r+   )has_fx_feature_extraction_create_feature_extractorr   r   r    )r%   r.   s     r   r   r   I   s9    $s&ss$$| /"&':";
 r   )typingr   r   r   r   r   r   r	   torchr
   %torchvision.models.feature_extractionr   r1   r   r-   r0   ImportError__all__setr   Moduler   r   r   r    r   r   r   strr   r   r   <module>r:      s    E E E  &kc $
	 DO #d299o #
 e 
'h '%		 eDItCy4H.I BII U4S>SWX[S\C\=] }  & %&s   B0 0B:9B: