o
    $i                     @   s   d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dlmZ ej	dkr-e
d  nd dlmZ d dlmZ dd	 Zd
d Zedkrle  Zejdddd e \ZZejr`ejdd eejrfdndd dS dS )    N)FileLock)tune)AsyncHyperBandScheduler)      )mnist)TuneReportCheckpointCallbackc           
      C   s  dd l }d}d}d}ttjd t \\}}\}}W d    n1 s'w   Y  |d |d }}|jj	|jj
jdd|jj
j| d	 d
d|jj
d|jj
j|ddg}	|	jd|jjj| d | d ddgd |	j||||d||ftg ddidgd d S )Nr      
   r   z~/.data.lockg     o@)   r   )input_shapehiddenrelu)
activationg?softmaxsparse_categorical_crossentropylrmomentum)r   r   accuracy)loss	optimizermetricsmean_accuracy)checkpoint_onr   )
batch_sizeepochsverbosevalidation_data	callbacks)
tensorflowr   ospath
expanduserr   	load_datakerasmodels
SequentiallayersFlattenDenseDropoutcompile
optimizersSGDfitr   )
configtfr   num_classesr   x_trainy_trainx_testy_testmodel r7   _/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/ray/tune/examples/tune_mnist_keras.pytrain_mnist   s@   	
r9   c                 C   s   t dddd}tjtjtddddtjd	d
| ddtj|dddddtddtddtdddd}|	 }t
d| j d S )Ntraining_iterationi     )	time_attrmax_tgrace_period   r   )cpugpu)	resourcesexpgGz?)r   r:   )namestopr   maxr
   )	schedulermetricmodenum_samplesgMbP?g?g?    i   )threadsr   r   r   )
run_configtune_configparam_spacez!Best hyperparameters found were: )r   r   Tunerwith_resourcesr9   	RunConfig
TuneConfiguniformrandintr.   printget_best_resultr/   )num_training_iterationsschedtunerresultsr7   r7   r8   
tune_mnist=   s.   


r\   __main__z--smoke-test
store_truezFinish quickly for testing)actionhelp   )num_cpusr?   i,  )rX   )argparser    sysfilelockr   rayr   ray.tune.schedulersr   version_infoexittensorflow.keras.datasetsr   ray.tune.integration.kerasr   r9   r\   __name__ArgumentParserparseradd_argumentparse_known_argsargs_
smoke_testinitr7   r7   r7   r8   <module>   s.    
)