
    9i                         S SK rS SKrS SKJr  S SKJr  S SKr	S SK
r
S SKJr  S rS rS rSS jr " S S	\5      rS
 rSS jrS r\" S5      r\" S5      r\" S5      r\" S5      r\rg)    N)repeat)BaseDatasetc                    SS K nUR                  U 5      nSnS nUcs  U Hm  nSU;   d  M  UR                  S5      (       d  M#  UR                  SS5      R	                  S5      S   nUR                  5       (       d  M^  [        U5      nUnUs  $    Ucx  U Hr  nSU;   d  M  UR                  S5      (       d  M#  UR                  SS5      R                  SS5      nUR                  5       (       d  M\  [        U5      nX:  d  Mn  UnUnMt     U$ )Nr   best_z.pth _epoch_)oslistdirendswithreplacesplitisdigitint)		work_pathr   	file_listlast
model_namef_name
best_epoch	epoch_numinds	            o/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/models/cv/image_classification/utils.pyget_trained_checkpoints_namer      s    

9%IDJF& V__V%<%<#^^FB7==cB2F
%%''z?D!'J%%   F6!foof&=&="NN8R8@@L	 ((**)n:D!'J       c                     U c  g [        U 5       HT  u  pUR                  S:X  d  M  [        UR                  [        5      (       d  M8  [        UR                  5      X   l        MV     U $ )NResize)	enumeratetype
isinstancesizelisttuple)cfgsicfgs      r   preprocess_transformr(   (   sO    |D/88x#((D))$SXX " Kr   c                 2   U b  [        U 5      S:  a  g  U S   S   R                  S5      S   nU S   S   R                  S5      S   R                  S5      n[        R                  " USUS   US   5      nU$ ! [         a  n[        SU 35      eS nAff = f)N   r   
image:FILE	extracted/   zDataset Error: )lenr   ospjoin	Exception
ValueError)
ms_dataset	data_root	path_postextracted_data_rootes        r   get_ms_dataset_rootr9   2   s    S_q00qM,/55kB1E	qM,/55kB1EKK	!hhy+y|'0|5"" 0?1#.//0s   A#A9 9
BBBc                     SS K n[        U [        5      (       a  UR                  U 5      nU$ [        U [        [
        45      (       a  U nU$ [        S[        U 5       S35      e)Nr   zUnsupported type z of classes.)mmcvr!   strlist_from_filer$   r#   r3   r    )classesr;   class_namess      r   get_classesr@   A   se    '3))'2  
GeT]	+	+  ,T']O<HIIr   c                   8   ^  \ rS rSr   SU 4S jjrS rSrU =r$ )	MmDatasetN   c                    > Xl         [        U R                   5      S:  a  [        S5      e[        [        U ]  UUUUS9  g )Nr*   zDataset Error: dataset is empty)data_prefixpipeliner>   	test_mode)r4   r/   r3   superrB   __init__)selfr4   rF   r>   rG   rE   	__class__s         r   rI   MmDataset.__init__P   sG     %t!#>??i'#	 	( 	!r   c                 &   U R                   c  [        SU R                    35      e/ nU R                   HY  nUS   nUS   nSU R                  0nSU0US'   [        R
                  " U[        R                  S9US'   UR                  U5        M[     U$ )	Nz*Dataset Error: Not found classesname.txt: r+   category
img_prefixfilenameimg_info)dtypegt_label)CLASSESr3   r4   rE   nparrayint64append)rJ   
data_infos	data_inforP   rS   infos         r   load_annotationsMmDataset.load_annotations_   s    <<<T\\NKM M 
I .H ,H $"2"23D *H5D!xxADd# ) r   )r4   )NFr   )__name__
__module____qualname____firstlineno__rI   r\   __static_attributes____classcell__)rK   s   @r   rB   rB   N   s    
  ! r   rB   c                    S nXSU-  -
  :  d  XSU-  -   :  a  [         R                  SSS9  U" X1-
  U-  5      nU" XA-
  U-  5      nU R                  SU-  S-
  SU-  S-
  5        U R                  5         U R	                  U[
        R                  " S5      -  5        U R                  U5        U R                  X4S9  U $ )Nc                 h    S[         R                  " U [         R                  " S5      -  5      -   S-  $ )N      ?       @)matherfsqrt)xs    r   norm_cdf _trunc_normal_.<locals>.norm_cdfs   s(    TXXa$))B-/00B66r   r.   zjmean is more than 2 std from [a, b] in nn.init.trunc_normal_. The distribution of values may be incorrect.)
stacklevelr*   rg   )minmax)	warningswarnuniform_erfinv_mul_rh   rj   add_clamp_)tensormeanstdabrl   vus           r   _trunc_normal_r   p   s    7 	1s7{1s7{ 2; 	 	 	!(c!"A!(c!"A OOAEAIq1uqy) NN KKdiim#$
KK MMaMMr   c                 |    [         R                  " 5          [        XX#U5      sS S S 5        $ ! , (       d  f       g = fN)torchno_gradr   )rx   ry   rz   r{   r|   s        r   trunc_normal_r      s!    	fCA6 
s   -
;c                    ^  U 4S jnU$ )Nc                    > [        U [        R                  R                  5      (       a  [        U [        5      (       d  U $ [        [        U T5      5      $ r   )r!   collectionsabcIterabler<   r$   r   )rk   ns    r   parse_ntuple.<locals>.parse   s<    a1122:a;M;MHVAq\""r    )r   r   s   ` r   _ntupler      s    #
 Lr   r*   r.         r   )g        rf   g       rg   )collections.abcr   rh   os.pathpathr0   	itertoolsr   numpyrU   r   mmcls.datasets.base_datasetr   r   r(   r9   r@   rB   r   r   r   	to_1tuple	to_2tuple	to_3tuple	to_4tuple	to_ntupler   r   r   <module>r      sv          38
 D!H7 AJ	AJ	AJ	AJ		r   