naming convention doesnt like env key, leakyrelu is no bueno, running quick experiment to see which option sets can work with our time left. the options that look 4s ahead are definitely out of the questions, possibly the 2s ones aswell
This commit is contained in:
@@ -21,11 +21,10 @@ import json
|
|||||||
|
|
||||||
DIR = os.path.dirname(os.path.abspath(__file__))
|
DIR = os.path.dirname(os.path.abspath(__file__))
|
||||||
option_list = [[(vel, time) for vel in [0, 1, 2, 4, 6, 8, 10] for time in [5]],
|
option_list = [[(vel, time) for vel in [0, 1, 2, 4, 6, 8, 10] for time in [5]],
|
||||||
[(vel, time) for vel in [0, 1, 2, 5, 7.5, 10] for time in [5, 20]],
|
[(vel, time) for vel in [0, 2.5, 5, 7.5, 10] for time in [5, 10]],
|
||||||
[(vel, time) for vel in [0, 1, 2, 4, 6, 8, 10] for time in [5, 10, 20]], # was the best in training with single hidden layer, but very slow
|
[(vel, time) for vel in [0, 2.5, 5, 7.5, 10] for time in [5, 20]],
|
||||||
[(vel, time) for vel in [0, 1, 2, 5, 7.5, 10] for time in [5, 20, 40]],
|
[(vel, time) for vel in [0, 2.5, 5, 10] for time in [5, 10, 20]],
|
||||||
[(vel, time) for vel in [0, 2, 5, 10] for time in [5, 10, 20]],
|
[(vel, time) for vel in [0, 3, 10] for time in [5, 10, 20]]
|
||||||
[(vel, time) for vel in [0, 3, 10] for time in [5, 20, 40]]
|
|
||||||
]
|
]
|
||||||
|
|
||||||
obs_min = np.array([
|
obs_min = np.array([
|
||||||
@@ -58,11 +57,12 @@ def training_function(config):
|
|||||||
collision_penalty=0
|
collision_penalty=0
|
||||||
),
|
),
|
||||||
check_collisions=True,
|
check_collisions=True,
|
||||||
stop_on_collision=config['env']['stop_on_collision'], track=track,
|
stop_on_collision=config['trainenv']['stop_on_collision'], track=track,
|
||||||
), collision_distance=6, collision_penalty=100), lambda obs: (obs - obs_min) / (obs_max - obs_min + 1e-10))
|
), collision_distance=6, collision_penalty=100), lambda obs: (obs - obs_min) / (obs_max - obs_min + 1e-10))
|
||||||
), options=option_list[config['policy']['option']],
|
), options=option_list[config['policy']['option']],
|
||||||
safe_actions_collision_method=config['env']['safe_actions_collision_method'],
|
safe_actions_collision_method=config['trainenv']['safe_actions_collision_method'],
|
||||||
abort_unsafe_collision_method=config['env']['abort_unsafe_collision_method']) for _ in range(20)] for track in range(4)],[])
|
abort_unsafe_collision_method=config['trainenv']['abort_unsafe_collision_method'],
|
||||||
|
) for _ in range(20)] for track in range(4)],[])
|
||||||
|
|
||||||
env_fn = lambda i: envs[i]
|
env_fn = lambda i: envs[i]
|
||||||
|
|
||||||
@@ -118,9 +118,9 @@ def training_function(config):
|
|||||||
value=value,
|
value=value,
|
||||||
v_opt=v_opt,
|
v_opt=v_opt,
|
||||||
v_iters=config['value']['iterations_per_epoch'],
|
v_iters=config['value']['iterations_per_epoch'],
|
||||||
epochs=301,
|
epochs=20, #300, #200 FIXME
|
||||||
rollout_episodes=60,
|
rollout_episodes=60,
|
||||||
rollout_steps=60,
|
rollout_steps=60,
|
||||||
gamma=0.99,
|
gamma=0.99,
|
||||||
gae_lambda=0.9,
|
gae_lambda=0.9,
|
||||||
clip_ratio=config['policy']['clip_ratio'],
|
clip_ratio=config['policy']['clip_ratio'],
|
||||||
@@ -137,19 +137,19 @@ def training_function(config):
|
|||||||
analysis = tune.run(
|
analysis = tune.run(
|
||||||
training_function,
|
training_function,
|
||||||
config={
|
config={
|
||||||
'env': {
|
'trainenv': {
|
||||||
'stop_on_collision': False,
|
'stop_on_collision': False, #tune.grid_search([False, True]),
|
||||||
'safe_actions_collision_method': 'circle',
|
'safe_actions_collision_method': 'circle',
|
||||||
'abort_unsafe_collision_method': 'circle',
|
'abort_unsafe_collision_method': 'circle',
|
||||||
},
|
},
|
||||||
'policy': {
|
'policy': {
|
||||||
'learning_rate': 3e-4, # tune.grid_search([3e-4]),
|
'learning_rate': 3e-4, # tune.grid_search([3e-4]),
|
||||||
'learning_rate_decay': 1.0, #tune.grid_search([1.0]),
|
'learning_rate_decay': 1.0, #tune.grid_search([1.0]),
|
||||||
'clip_ratio': 0.2, #tune.grid_search([0.2]),
|
'clip_ratio': 0.2, #tune.grid_search([0.2]),
|
||||||
'iterations_per_epoch': 100, #tune.grid_search([100]),
|
'iterations_per_epoch': 100, #tune.grid_search([100]),
|
||||||
'hidden_layer_size': tune.grid_search([10, 20, 40]),
|
'hidden_layer_size': 10, #tune.grid_search([10, 20, 40]), FIXME
|
||||||
'n_hidden_layers': tune.grid_search([2, 3, 4]),
|
'n_hidden_layers': 2, #tune.grid_search([2, 3, 4]), FIXME
|
||||||
'activation':tune.grid_search([torch.nn.LeakyReLU, torch.nn.Tanh]),
|
'activation':torch.nn.Tanh,
|
||||||
'option': tune.grid_search(list(range(len(option_list))))
|
'option': tune.grid_search(list(range(len(option_list))))
|
||||||
},
|
},
|
||||||
'value': {
|
'value': {
|
||||||
|
|||||||
Reference in New Issue
Block a user