
    NgG                         d dl Z d dlZd dlZd dlZd dlmZmZmZmZ ddl	m
Z
 ddddd	d
dZddddddddZdZdZdee         fdZ G d de
          ZdS )    N)DictListOptionalUnion   )DatasetInfoimagenet-1kzimagenet-21k-miilzimagenet-12kzimagenet-22kzimagenet-22k-mszimagenet-21k-goog)i  i+  i-.  iQU  iRU  iSU  zimagenet_synsets.txtzimagenet12k_synsets.txtzimagenet22k_synsets.txtzimagenet21k_goog_synsets.txtzimagenet21k_miil_synsets.txtzimagenet22k_ms_synsets.txt)
imagenet1kimagenet12kimagenet22kimagenet21kimagenet21kgoogimagenet21kmiilimagenet22kmszimagenet_synset_to_lemma.txtz!imagenet_synset_to_definition.txtreturnc                    t          | t                    r|                     dd           }n:t          | dd           }|s't          | di           }|                    dd           }|r	|t          vrd S t          |         S )Nnum_classespretrained_cfg)
isinstancedictgetgetattr_NUM_CLASSES_TO_SUBSET)model_or_cfgr   r   s      S/var/www/html/ai-engine/env/lib/python3.11/site-packages/timm/data/imagenet_info.pyinfer_imagenet_subsetr   !   s    ,%% B"&&}d;;lM4@@ 	B$\3CRHHN ),,]DAAK +-CCCt!+..    c                        e Zd Zddef fdZd Zd Zddeded	ee	e         e
eef         f         fd
Zd	efdZddeded	efdZddeded	efdZ xZS )ImageNetInfor	   subsetc                    t                                                       t          j        dd|                                          }|t
          v sJ d| d            t
          |         }t          j        t          t          j
                            d|                    }|                    d                                          | _        t          j        t          t          j
                            dt                              }t!          j        |                    d                                          d          }t%          |          | _        t          j        t          t          j
                            dt(                              }t!          j        |                    d                                          d          }t%          |          | _        d S )	Nz[-_\s] zUnknown imagenet subset ._infozutf-8	)	delimiter)super__init__resublower_SUBSETSpkgutilget_data__name__ospathjoindecode
splitlines_synsets_LEMMA_FILEcsvreaderr   _lemmas_DEFINITION_FILE_definitions)selfr    synset_filesynset_data
lemma_datar8   definition_data	__class__s          r   r(   zImageNetInfo.__init__2   sm   	2v||~~66!!!#Gf#G#G#G!!! v&&xg{1S1STT#**733>>@@ %hWk0R0RSS
J--g66AACCtTTTF||!*8RW\\'K[5\5\]]O227;;FFHHTXYYY LLr   c                 *    t          | j                  S Nlenr5   r<   s    r   r   zImageNetInfo.num_classesE   s    4=!!!r   c                     | j         S rC   r5   rF   s    r   label_nameszImageNetInfo.label_namesH   s
    }r   Fdetailedas_dictr   c                 Z     |r fd j         D             S  fd j         D             S )Nc                 @    i | ]}|                     |           S rJ   label_name_to_description.0labelrJ   r<   s     r   
<dictcomp>z3ImageNetInfo.label_descriptions.<locals>.<dictcomp>M   s/    oooX]E499%(9SSooor   c                 >    g | ]}                     |           S rN   rP   rR   s     r   
<listcomp>z3ImageNetInfo.label_descriptions.<locals>.<listcomp>O   s-    hhhQVD22582LLhhhr   rH   )r<   rJ   rK   s   `` r   label_descriptionszImageNetInfo.label_descriptionsK   sO     	ioooooaeanoooohhhhhZ^Zghhhhr   c                     d|cxk    rt          | j                  k     s%n J d| dt          | j                   d            | j        |         S )Nr   zIndex (z ) out of range for dataset with z	 classes.rD   )r<   indexs     r   index_to_label_namez ImageNetInfo.index_to_label_nameQ   sf    E....C.......ZeZZS=O=OZZZ /..}U##r   rZ   c                 Z    |                      |          }|                     ||          S )NrO   )r[   rQ   )r<   rZ   rJ   rT   s       r   index_to_descriptionz!ImageNetInfo.index_to_descriptionV   s.    ((//--eh-GGGr   rT   c                 b    |r| j         |          d| j        |          }n| j         |          }|S )Nz: )r9   r;   )r<   rT   rJ   descriptions       r   rQ   z&ImageNetInfo.label_name_to_descriptionZ   sC     	3!\%0NND4Ee4LNNKK!\%02Kr   )r	   )FF)F)r/   
__module____qualname__strr(   r   rI   boolr   r   r   rX   r[   intr]   rQ   __classcell__)rA   s   @r   r   r   0   s;       ) )s ) ) ) ) ) )&" " "  i i4 i$ iSXY]^aYbdhilnqiqdrYrSs i i i i$C $ $ $ $
H H# H H# H H H H s d s        r   r   )r7   r0   r-   r)   typingr   r   r   r   dataset_infor   r   r,   r6   r:   rb   r   r    r   r   <module>ri      s   



 				  				 . . . . . . . . . . . . % % % % % %
    ),,1551  -6 /8C= / / / // / / / /; / / / / /r   