
    &`i"                        d dl mZ 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
mZmZmZ d dlmZ dZdZ ej        d	          Ze                    d
ddd           e                    ded           e                    ddd            G d dej                  Zedk    re                                Z ej        ej        ej        rdnd            e            Z ej         ej         ed e!ej"                  d           ej#        dej        rdndd ej$        d d!          "           ej%        d#d$eej        rd%nd&          e ej&        d'd(           ej&        d(d)          d*+          Z'e'(                                Z) e*d,e)+                                j,                   dS dS )-    )print_functionN)tune)ConvNetget_data_loaders	test_func
train_func)ASHAScheduleri      zPyTorch MNIST Example)descriptionz	--use-gpu
store_trueFzenables CUDA training)actiondefaulthelpz--ray-addressz!The Redis address of the cluster.)typer   z--smoke-testzFinish quickly for testing)r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )
TrainMNISTc                    |                     d          ot          j                                        }t          j        |rdnd          | _        t                      \  | _        | _        t                      	                    | j                  | _
        t          j        | j
                                        |                     dd          |                     dd                    | _        d S )	Nuse_gpucudacpulrg{Gz?momentum?)r   r   )gettorchr   is_availabledevicer   train_loadertest_loaderr   tomodeloptimSGD
parameters	optimizer)selfconfiguse_cudas      }/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/ray/tune/examples/mnist_pytorch_trainable.pysetupzTrainMNIST.setup(   s    ::i((FUZ-D-D-F-FlX#@665AA.>.@.@+4+YY\\$+..
J!!##zz$%%ZZ
C002 2 2    c                     t          | j        | j        | j        | j                   t          | j        | j        | j                  }d|iS )N)r   mean_accuracy)r   r!   r%   r   r   r   r   )r&   accs     r)   stepzTrainMNIST.step2   sR    J(9$+	O 	O 	O 	O
D$4dkBB%%r+   c                     t           j                            |d          }t          j        | j                                        |           d S Nz	model.pth)ospathjoinr   saver!   
state_dictr&   checkpoint_dircheckpoint_paths      r)   save_checkpointzTrainMNIST.save_checkpoint8   s=    ',,~{CC
4:((**O<<<<<r+   c                     t           j                            |d          }| j                            t          j        |                     d S r1   )r2   r3   r4   r!   load_state_dictr   loadr7   s      r)   load_checkpointzTrainMNIST.load_checkpoint<   s=    ',,~{CC
""5:o#>#>?????r+   N)__name__
__module____qualname__r*   r/   r:   r>    r+   r)   r   r   '   sU        2 2 2& & &= = =@ @ @ @ @r+   r   __main__   )addressnum_cpus   )r   gpu)	resourcesgffffff?   )r-   training_iterationT)checkpoint_at_endcheckpoint_frequency)stopcheckpoint_configr-   max   )metricmode	schedulernum_samplesgMbP?g?r   )argsr   r   )
run_configtune_configparam_spacezBest config is:)-
__future__r   argparser2   r   torch.optimr"   rayr   ray.tune.examples.mnist_pytorchr   r   r   r   ray.tune.schedulersr	   
EPOCH_SIZE	TEST_SIZEArgumentParserparseradd_argumentstr	Trainabler   r?   
parse_argsrV   initray_address
smoke_testschedTunerwith_resourcesintr   	RunConfigCheckpointConfig
TuneConfiguniformtunerfitresultsprintget_best_resultr'   rB   r+   r)   <module>rx      s   & % % % % %  				        



                  . - - - - - 
	 
!	 -D	E	E	E   e:Q       O#4W  X X X   <.J    @ @ @ @ @ @ @ @: zDCHT%T_0N$OOOOMOOEDJJ!CCDUDU2V2VWWW!4>!%+/?&Baa  4d3"&Q  
 
 
 $DO"!_4"	
 
 
 $,uc**$S#..
 
#  E. iikkG	E
W4466=>>>>>= r+   