o
    1j                     @   s8   d dl mZ ddlmZ ddlmZ G dd deZdS )	   )logging   )BaseTrainer   )MODELSc                   @   s2   e Zd ZdZeZdd Zdd ZdefddZ	d	S )

DetTrainerzObject Detection Model Trainerc                 C   sN   d| j v r	| j jnd}d| j jv r| j jd nd}| j j| jjd||d dS )zupdate dataset settingsmetricZCOCOdata_fieldsNZCOCODetDataset)r	   r   )
pdx_configr   ZTrainDatasetZupdate_datasetglobal_configZdataset_dir)selfr   r	    r   i/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddlex/modules/object_detection/trainer.py_update_dataset   s   
zDetTrainer._update_datasetc                 C   sx  | j jr| j| j j | j jr| j| j j |   | j jdur*| j| j j | j j	r<| j j	dkr<| j
| j j	 | j jdurJ| j| j j | j jdurX| j| j j | j jdurk| j| j j | j j}n| j }| j jdur~| j| j j | jjdur| j| jj d| jjv rtt|d d}z	| j| W dS  ty   td| jj d Y dS w dS )zupdate training configN ZPicoDet
   r   z
The model(z1) don't support to update_static_assigner_epochs!)train_configZlog_intervalr
   Zupdate_log_intervalZeval_intervalZupdate_eval_intervalr   Znum_classesZupdate_num_classZpretrain_weight_pathZupdate_pretrained_weightsZ
batch_sizeZupdate_batch_sizeZlearning_rateZupdate_learning_rateepochs_itersZupdate_epochsZget_epochs_itersZwarmup_stepsZupdate_warmup_stepsr   outputZupdate_save_dirmodelmaxintZupdate_static_assigner_epochs	Exceptionr   info)r   r   Zassigner_epochsr   r   r   update_config*   sF   


zDetTrainer.update_configreturnc                 C   sX   d|   i}| jjdur| jjdkr| jj|d< | jdd|d< | jdd|d< |S )	zget key-value arguments of model training function

        Returns:
            dict: the arguments of training function.
        ZdeviceNr   resume_pathZdy2stFampZOFF)Z
get_devicer   r   get)r   Z
train_argsr   r   r   get_train_kwargsS   s   zDetTrainer.get_train_kwargsN)
__name__
__module____qualname____doc__r   entitiesr   r   dictr   r   r   r   r   r      s    )r   N)utilsr   baser   Z
model_listr   r   r   r   r   r   <module>   s   