o
    H!i                     @   s@   d dl Z d dlmZ ddlmZ ddlmZ G dd deZdS )	    N)Path   )BaseTrainer   )MODELSc                   @   s8   e Zd ZdZeZdefddZdd Zde	fdd	Z
d
S )TextRecTrainerzText Recognition Model Trainersrc_label_dict_pathc                 C   s"   t | jjd}t|| dS )zzdump label dict config

        Args:
            src_label_dict_path (str): path to label dict file to be saved.
        zlabel_dict.txtN)r   global_configoutputjoinpathshutilcopyfile)selfr   Zdst_label_dict_path r   t/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/paddlex/modules/text_recognition/trainer.pydump_label_dict   s   zTextRecTrainer.dump_label_dictc                 C   s  | j jr| j| j j | j jr| j| j j | j jr$| j| j j | jd dkr5| j	| jj
d nd| jd v rF| j	| jj
d n	| j	| jj
d t| jj
d}| rg| j| | | | j jrs| j| j j | jd dkr| j jdur| j jr| j| j j| j j n| j jdur| j| j j | j jdur| j| j j | j jdur| j| j j | j jdur| j jd	kr| j| j j | jjdur| j| jj dS dS )
zupdate training configmodelZLaTeX_OCR_recZLaTeXOCRDataSetzPP-OCRv3ZSimpleDataSetZMSTextRecDatasetzdict.txtN )train_configZlog_intervalZ
pdx_configZupdate_log_intervalZeval_intervalZ_update_eval_interval_by_epochZsave_intervalZupdate_save_intervalr	   Zupdate_datasetZdataset_dirr   r   existsZupdate_label_dict_pathr   Zpretrain_weight_pathZupdate_pretrained_weightsZbatch_size_trainZbatch_size_valZupdate_batch_size_pairZ
batch_sizeZupdate_batch_sizeZlearning_rateZupdate_learning_rateZepochs_itersZ_update_epochsZresume_pathZ_update_checkpointsr
   Z_update_output_dir)r   Zlabel_dict_pathr   r   r   update_config%   s^   
zTextRecTrainer.update_configreturnc                 C   s$   |   | jdd| jdddS )zget key-value arguments of model training function

        Returns:
            dict: the arguments of training function.
        dy2stFampZOFF)Zdevicer   r   )Z
get_devicer   get)r   r   r   r   get_train_kwargs_   s   zTextRecTrainer.get_train_kwargsN)__name__
__module____qualname____doc__r   entitiesstrr   r   dictr   r   r   r   r   r      s    	:r   )r   pathlibr   baser   Z
model_listr   r   r   r   r   r   <module>   s
   