o
    "jO                     @   sv   d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ G dd dZ	G dd	 d	eZ
G d
d de
Zdd ZdS )    N   )MetricsRecorder)Storable)TunableSpacec                   @   s   e Zd ZdZdZdZdZdS )TrialStatusRUNNING	COMPLETEDSTOPPEDINVALIDN)__name__
__module____qualname__r   r   r	   r
    r   r   t/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/paddle/distributed/auto_parallel/static/tuner/trial.pyr      s
    r   c                   @   s   e Zd ZdejfddZedd Zedd Zedd	 Z	ed
d Z
e
jdd Z
edd Zejdd Zedd Zejdd Zdd Zdd Zdd Zedd ZdS )TrialNc                 C   s8   |d u rt  n|| _|| _t | _d | _d | _|| _d S N)_generate_trial_id_id_spacer   	_recorder_score
_best_step_status)selftunable_spacetrial_idstatusr   r   r   __init__#   s   
zTrial.__init__c                 C      | j S r   )r   r   r   r   r   id-      zTrial.idc                 C   r   r   )r   r   r   r   r   space1   r!   zTrial.spacec                 C   r   r   )r   r   r   r   r   recorder5   r!   zTrial.recorderc                 C   r   r   r   r   r   r   r   score9   r!   zTrial.scorec                 C   
   || _ d S r   r$   )r   r%   r   r   r   r%   =      
c                 C   r   r   r   r   r   r   r   	best_stepA   r!   zTrial.best_stepc                 C   r&   r   r(   )r   r)   r   r   r   r)   E   r'   c                 C   r   r   r   r   r   r   r   r   I   r!   zTrial.statusc                 C   r&   r   r*   )r   r   r   r   r   r   M   r'   c                 C   sV   t d | jjr| jj D ]\}}t |d | q| jd ur)t d| j  d S d S )NzTunable space::zScore: )printr"   valuesitemsr%   )r   tvvaluer   r   r   summaryQ   s   
zTrial.summaryc                 C   s&   | j | j | j | j| j| jdS )N)r    r"   r#   r%   r)   r   )r    r"   	get_stater#   r%   r)   r   r   r   r   r   r2   Z   s   zTrial.get_statec                 C   sL   |d | _ t|d | _t|d | _|d | _|d | _|d | _d S )Nr    r"   r#   r%   r)   r   )	r   r   
from_stater   r   r   r   r   r   )r   stater   r   r   	set_stated   s   


zTrial.set_statec                 C   s   | d d}| | |S )N)r   )r5   )clsr4   Ztrialr   r   r   r3   l   s   

zTrial.from_state)r   r   r   r   r   r   propertyr    r"   r#   r%   setterr)   r   r1   r2   r5   classmethodr3   r   r   r   r   r   "   s4    










	
r   c                       s8   e Zd Zdejf fdd	Zedd Zdd Z  Z	S )OptimizationTunerTrialNc                    s    t  ||| || _|| _d S r   )superr   _name_changed_configs)r   confignameZchanged_configsr   r   	__class__r   r   r   t   s   
zOptimizationTunerTrial.__init__c                 C   r   r   )r<   r   r   r   r   r?      r!   zOptimizationTunerTrial.namec                 C   s*  d}d}d}|| | }dd| d }dd |d| | }dd	d
g|  d }dd	dg|  d }|d }	|	| d	7 }	|	| d7 }	|	| d	7 }	| jD ];}
|	|d 7 }	|	| |
 d|
 7 }	|	|d 7 }	t| j|
}|  }|D ]}|	| |t| |d 7 }	q{qS|	| }|S )N   &   z    z|{:^zs}|
z|{{:>{}s}}{}{{:^{}s}}|
 z    + =+-
zTuned Configurations Overviewz auto=True <-> )	formatjoinr=   getattrr"   to_dictkeysstrget)r   spacingZmax_kZmax_vlengthZ	h1_formatZ	h2_formatborderlineZdrawsr?   Z
my_configsrN   keyZ
result_resr   r   r   r1      s6   

zOptimizationTunerTrial.summary)
r   r   r   r   r   r   r7   r?   r1   __classcell__r   r   r@   r   r:   s   s    
r:   c                  C   s<   t t t tdtd } t| d d d S )Nr   g    cAzutf-8    )	rO   timerandomrandintinthashlibsha256encode	hexdigest)sr   r   r   r      s    r   )r\   rY   rX   r#   r   Zstorabler   r   r   r   r   r:   r   r   r   r   r   <module>   s   Q4