|  |  | @@ -1,6 +1,10 @@ | 
		
	
		
			
			|  |  |  | #!/usr/bin/env python3 | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | from icosagon.data import Data | 
		
	
		
			
			|  |  |  | from icosagon.trainprep import TrainValTest, \ | 
		
	
		
			
			|  |  |  | prepare_training | 
		
	
		
			
			|  |  |  | from icosagon.model import Model | 
		
	
		
			
			|  |  |  | from icosagon.trainloop import TrainLoop | 
		
	
		
			
			|  |  |  | import os | 
		
	
		
			
			|  |  |  | import pandas as pd | 
		
	
		
			
			|  |  |  | from bisect import bisect_left | 
		
	
	
		
			
				|  |  | @@ -88,9 +92,28 @@ def load_data(): | 
		
	
		
			
			|  |  |  | print() | 
		
	
		
			
			|  |  |  | print('OK') | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | return data | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | def _wrap(obj, method_name): | 
		
	
		
			
			|  |  |  | orig_fn = getattr(obj, method_name) | 
		
	
		
			
			|  |  |  | def fn(*args, **kwargs): | 
		
	
		
			
			|  |  |  | print(f'{method_name}() :: ENTER') | 
		
	
		
			
			|  |  |  | res = orig_fn(*args, **kwargs) | 
		
	
		
			
			|  |  |  | print(f'{method_name}() :: EXIT') | 
		
	
		
			
			|  |  |  | return res | 
		
	
		
			
			|  |  |  | setattr(obj, method_name, fn) | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | def main(): | 
		
	
		
			
			|  |  |  | data = load_data() | 
		
	
		
			
			|  |  |  | prep_d = prepare_training(data, TrainValTest(.8, .1, .1)) | 
		
	
		
			
			|  |  |  | _wrap(Model, 'build') | 
		
	
		
			
			|  |  |  | model = Model(prep_d) | 
		
	
		
			
			|  |  |  | _wrap(TrainLoop, 'build') | 
		
	
		
			
			|  |  |  | _wrap(TrainLoop, 'run_epoch') | 
		
	
		
			
			|  |  |  | loop = TrainLoop(model, batch_size=1000000) | 
		
	
		
			
			|  |  |  | loop.run_epoch() | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | if __name__ == '__main__': | 
		
	
	
		
			
				|  |  | 
 |