o
    hK                     @   s   d dl mZmZmZmZmZmZmZmZ d dl	m
Z
mZmZmZmZ d dlmZ eeZG dd dZG dd deZG dd	 d	eZG d
d deZG dd deZdd eeeefD ZdefddZdS )   )is_optuna_availableis_ray_tune_availableis_sigopt_availableis_wandb_availablerun_hp_search_optunarun_hp_search_rayrun_hp_search_sigoptrun_hp_search_wandb)HPSearchBackenddefault_hp_space_optunadefault_hp_space_raydefault_hp_space_sigoptdefault_hp_space_wandb)loggingc                   @   s\   e Zd ZU eed< dZeed< edd Zdedefdd	Z	d
d Z
dd Zedd ZdS )HyperParamSearchBackendBasenameNpip_packagec                   C      t NNotImplementedError r   r   X/var/www/html/ai/venv/lib/python3.10/site-packages/transformers/hyperparameter_search.pyis_available+   s   z(HyperParamSearchBackendBase.is_availablen_trials	directionc                 K   r   r   r   selftrainerr   r   kwargsr   r   r   run/      zHyperParamSearchBackendBase.runc                 C   r   r   r   r   trialr   r   r   default_hp_space2   r!   z,HyperParamSearchBackendBase.default_hp_spacec                 C   s(   |   std| j d|   dd S )NzYou picked the z' backend, but it is not installed. Run .)r   RuntimeErrorr   pip_install)r   r   r   r   ensure_available5   s
   z,HyperParamSearchBackendBase.ensure_availablec                 C   s   d| j p| j dS )Nz`pip install `)r   r   )clsr   r   r   r'   ;   s   z'HyperParamSearchBackendBase.pip_install)__name__
__module____qualname__str__annotations__r   staticmethodr   intr    r$   r(   classmethodr'   r   r   r   r   r   '   s   
 
r   c                   @   6   e Zd ZdZedd ZdedefddZdd	 Z	d
S )OptunaBackendoptunac                   C      t  S r   )r   r   r   r   r   r   C      zOptunaBackend.is_availabler   r   c                 K      t |||fi |S r   )r   r   r   r   r   r    G      zOptunaBackend.runc                 C      t |S r   )r   r"   r   r   r   r$   J      zOptunaBackend.default_hp_spaceN
r+   r,   r-   r   r0   r   r1   r.   r    r$   r   r   r   r   r4   @       
r4   c                   @   s:   e Zd ZdZdZedd ZdedefddZ	d	d
 Z
dS )RayTuneBackendrayz'ray[tune]'c                   C   r6   r   )r   r   r   r   r   r   R   r7   zRayTuneBackend.is_availabler   r   c                 K   r8   r   )r   r   r   r   r   r    V   r9   zRayTuneBackend.runc                 C   r:   r   )r   r"   r   r   r   r$   Y   r;   zRayTuneBackend.default_hp_spaceN)r+   r,   r-   r   r   r0   r   r1   r.   r    r$   r   r   r   r   r>   N   s    
r>   c                   @   r3   )SigOptBackendsigoptc                   C   r6   r   )r   r   r   r   r   r   `   r7   zSigOptBackend.is_availabler   r   c                 K   r8   r   )r   r   r   r   r   r    d   r9   zSigOptBackend.runc                 C   r:   r   )r   r"   r   r   r   r$   g   r;   zSigOptBackend.default_hp_spaceNr<   r   r   r   r   r@   ]   r=   r@   c                   @   r3   )WandbBackendwandbc                   C   r6   r   )r   r   r   r   r   r   n   r7   zWandbBackend.is_availabler   r   c                 K   r8   r   )r	   r   r   r   r   r    r   r9   zWandbBackend.runc                 C   r:   r   )r   r"   r   r   r   r$   u   r;   zWandbBackend.default_hp_spaceNr<   r   r   r   r   rB   k   r=   rB   c                 C   s   i | ]}t |j|qS r   )r
   r   .0backendr   r   r   
<dictcomp>y   s    rG   returnc                  C   sr   dd t  D } t| dkr)| d j}t| dkr'tt|  d| d |S tddd	d
 t  D  )Nc                 S   s   g | ]}|  r|qS r   )r   rD   r   r   r   
<listcomp>   s    z-default_hp_search_backend.<locals>.<listcomp>    r   z1 hyperparameter search backends available. Using z as the default.z,No hyperparameter search backend available.

c                 s   s&    | ]}d |j  d|  V  qdS )z - To install z run N)r   r'   rD   r   r   r   	<genexpr>   s
    
z,default_hp_search_backend.<locals>.<genexpr>)"ALL_HYPERPARAMETER_SEARCH_BACKENDSvalueslenr   loggerinfor&   join)available_backendsr   r   r   r   default_hp_search_backend~   s   

rT   N)integrationsr   r   r   r   r   r   r   r	   trainer_utilsr
   r   r   r   r   utilsr   
get_loggerr+   rP   r   r4   r>   r@   rB   rM   r.   rT   r   r   r   r   <module>   s   (


