o
    1Îj‚  ã                   @   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 )ÚFormulaRecTrainerz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   úl/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddlex/modules/formula_recognition/trainer.pyÚdump_label_dict   s   z!FormulaRecTrainer.dump_label_dictc                 C   s0  | 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| jd dv rE| j 	| jj
d¡ t| jj
ƒ d¡}| ¡ r]| j |¡ |  |¡ | j jri| j | j j¡ | j jdur‹| jd dkr| jj| j jdd	 n
| jj| j jdd	 | jjdur­| jd dkr£| jj| jjd
d	 n
| jj| jjd
d	 | j jdur»| j | j j¡ | j  dd¡durÎ| jj| j jdd	 | j dd¡durá| jj| jjd
d	 | 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LaTeXOCRDataSet)Z	UniMERNetzPP-FormulaNet-LzPP-FormulaNet-SzPP-FormulaNet_plus-LzPP-FormulaNet_plus-MzPP-FormulaNet_plus-SZSimpleDataSetzdict.txtNÚtrain)ÚmodeÚevalÚ	delimiterÚ )!Ú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_sizeZupdate_batch_size_pairZupdate_batch_sizeZeval_configZlearning_rateZupdate_learning_rateÚgetZupdate_delimiterr   Zepochs_itersZ_update_epochsZresume_pathZ_update_checkpointsr
   Z_update_output_dir)r   Zlabel_dict_pathr   r   r   Úupdate_config%   sl   ÿÿÿ
ÿÿÿÿÿÿzFormulaRecTrainer.update_configÚreturnc                 C   s$   |   ¡ | j dd¡| j dd¡dœS )zƒget key-value arguments of model training function

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