
    RЦi                     <    S r SSKrSSKrSSKrSSKr " S S5      rg)zReal labels evaluator for ImageNet
Paper: `Are we done with ImageNet?` - https://arxiv.org/abs/2006.07159
Based on Numpy example at https://github.com/google-research/reassessed-imagenet

Hacked together by / Copyright 2020 Ross Wightman
    Nc                   .    \ rS rSrSS jrS rSS jrSrg)	RealLabelsImagenet   Nc           	      ^   Ub+  [        U5       n[        R                  " U5      nS S S 5        O\[        R                  " [        R
                  " [        [        R                  R                  SS5      5      R                  S5      5      n[        W5       VVs0 s H  u  pVSUS-   S S3U_M     nnnX@l        Xl        [        U R                  5      [        U R                  5      :X  d   eX0l        U Vs0 s H  ow/ _M     snU l        SU l        g ! , (       d  f       N= fs  snnf s  snf )	N_infozimagenet_real_labels.jsonzutf-8ILSVRC2012_val_   08dz.JPEGr   )openjsonloadloadspkgutilget_data__name__ospathjoindecode	enumeratereal_labels	filenameslentopk
is_correct
sample_idx)selfr   	real_jsonr   r   ilabelsks           T/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/timm/data/real_labels.py__init__RealLabelsImagenet.__init__   s     iK"ii4 ! **  277<<A\+]^eefmnpKS\]hSijSiiaQs596ASij&"4>>"c$*:*:&;;;;	*./$Qb5$/ !
 k
 0s   DD$7D*
D!c                 .   [        U R                  5      nUR                  USSS5      u  p4UR                  5       R                  5       nU H  nU R                  U R
                     n[        R                  R                  U5      nU R                  U   (       a]  U R                   HM  nU R                  U   R                  [        US U  Vs/ s H  oU R                  U   ;   PM     sn5      5        MO     U =R
                  S-  sl        M     g s  snf )Nr	   T)maxr   cpunumpyr   r   r   r   basenamer   r   appendany)	r   outputmaxk_
pred_batchpredfilenamer!   ps	            r"   
add_resultRealLabelsImagenet.add_result   s    499~D!T48^^%++-
D~~doo6Hww''1H)AOOA&--d2AhOh$"2"28"<<hOPR # OOq O  Ps   Dc           
         UcJ  U R                    Vs0 s H2  o[        [        R                  " U R                  U   5      5      S-  _M4     sn$ [        [        R                  " U R                  U   5      5      S-  $ s  snf )Nd   )r   floatnpmeanr   )r   r!   s     r"   get_accuracyRealLabelsImagenet.get_accuracy+   sg    9IMSAuRWWT__Q%789C??SS!345;; Ts   9A=)r   r   r   r   r   )N)r	      )N)r   
__module____qualname____firstlineno__r#   r3   r:   __static_attributes__     r"   r   r      s    !<rB   r   )__doc__r   r   r(   r8   r   r   rA   rB   r"   <module>rD      s"    
   "< "<rB   