@@ -47,6 +47,34 @@ def grid_search(export_path, cfg, param_grid):
4747 print (e )
4848
4949
50+ def pid_grid_search (export_path , cfg_path , param_grid , T ):
51+ np .random .seed (42 )
52+ df = pd .DataFrame ()
53+
54+ keys = param_grid .keys ()
55+ values = param_grid .values ()
56+ for i , combination in enumerate (itertools .product (* values )):
57+ iter_params = dict (zip (keys , combination ))
58+
59+ try :
60+ with open (cfg_path ) as f :
61+ cfg = yaml .load (f , Loader = yaml .SafeLoader )
62+
63+ experiment = main .Experiment (** cfg )
64+ experiment .run_pid (kp = iter_params ['kp' ], kd = iter_params ['kd' ], ki = iter_params ['ki' ], T = T )
65+
66+ iter_params ['cost' ] = experiment .cost
67+ iter_params ['mae' ] = experiment .mae
68+ iter_params ['v_count' ] = experiment .v_count
69+ iter_params ['v_rate' ] = experiment .v_rate
70+ temp = pd .DataFrame (iter_params , index = [len (df )])
71+ df = pd .concat ([df , temp ])
72+ print (df )
73+ df .to_csv (export_path )
74+ except Exception as e :
75+ print (e )
76+
77+
5078def random_search (export_path , cfg , n ):
5179 df = pd .DataFrame ()
5280 lambdas = [0 , 0.01 , 0.1 , 1 , 10 , 100 , 1000 ]
0 commit comments