Ë
    éÓ^j  ã                   ó<   — d Z ddlZddlZddlZddlZ G d„ d«      Zy)zï Real 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                   ó"   — e Zd Zdd„Zd„ Zdd„Zy)ÚRealLabelsImagenetNc           	      óH  — |�*t        |«      5 }t        j                  |«      }d d d «       nZt        j                  t	        j
                  t        t        j                  j                  dd«      «      j                  d«      «      }t        «      D ��ci c]  \  }}d|dz   d›d�|“Œ }}}|| _        || _        t        | j                  «      t        | j                  «      k(  sJ ‚|| _        |D �ci c]  }|g “Œ c}| _        d| _        y # 1 sw Y   Œ�xY wc c}}w c c}w )	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           ú`/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/data/real_labels.pyÚ__init__zRealLabelsImagenet.__init__   s  € ØÐ Ü�i“ð 5 KÜ"Ÿi™i¨Ó4�÷5ð 5ô Ÿ*™*Ü× Ñ ¤¬2¯7©7¯<©<¸ÐA\Ó+]Ó^×eÑeÐfmÓnópˆKäS\Ð]hÓSi×jÁiÀaÈ˜¨¨Q©¨s¨°5Ð9¸6ÑAÐjˆÑjØ&ˆÔØ"ˆŒÜ�4—>‘>Ó"¤c¨$×*:Ñ*:Ó&;Ò;Ð;Ð;ØˆŒ	Ø*.Ö/ Q˜1˜b™5Ò/ˆŒØˆ�÷5ð 5üó
 kùò
 0s   ŽDÂDÃ3
DÄDc                 ó  — t        | j                  «      }|j                  |ddd«      \  }}|j                  «       j                  «       }|D ]¶  }| j                  | j
                     }t        j                  j                  |«      }| j                  |   rX| j                  D ]I  }| j                  |   j                  t        |d | D �cg c]  }|| j                  |   v ‘Œ c}«      «       ŒK | xj
                  dz  c_        Œ¸ y c c}w )Nr   T)Úmaxr   ÚcpuÚnumpyr   r   r   r   Úbasenamer   r   ÚappendÚany)	r   ÚoutputÚmaxkÚ_Ú
pred_batchÚpredÚfilenamer    Úps	            r!   Ú
add_resultzRealLabelsImagenet.add_result   së   € Ü�4—9‘9‹~ˆØŸ™ D¨!¨T°4Ó8‰ˆˆ:Ø—^‘^Ó%×+Ñ+Ó-ˆ
Øò 	!ˆDØ—~‘~ d§o¡oÑ6ˆHÜ—w‘w×'Ñ'¨Ó1ˆHØ×Ñ Ò)ØŸ™ò R�AØ—O‘O AÑ&×-Ñ-ÜÀdÈ2ÈAÀhÖOÀ˜Q $×"2Ñ"2°8Ñ"<Ò<ÒOÓPõRðRð �OŠO˜qÑ ŽOñ	!ùò Ps   Ã
Dc           
      óú   — |€G| j                   D �ci c]1  }|t        t        j                  | j                  |   «      «      dz  “Œ3 c}S t        t        j                  | j                  |   «      «      dz  S c c}w )Néd   )r   ÚfloatÚnpÚmeanr   )r   r    s     r!   Úget_accuracyzRealLabelsImagenet.get_accuracy+   se   € Øˆ9ØIMÏÉÖSÀA�A”uœRŸW™W T§_¡_°QÑ%7Ó8Ó9¸CÑ?Ñ?ÒSÐSäœŸ™ §¡°Ñ!3Ó4Ó5¸Ñ;Ð;ùò Ts   ‘6A8)N)r   é   )N)r   Ú
__module__Ú__qualname__r"   r1   r7   © ó    r!   r   r      s   „ óò!ô<r<   r   )Ú__doc__r   r   r&   r5   r   r   r;   r<   r!   ú<module>r>      s"   ðñó 
Û Û Û ÷"<ò "<r<   