in scripts/experiment.py [0:0]
def main(robot, task, algo, seed, exp_name, cpu):
# Verify experiment
robot_list = ['point', 'car', 'doggo']
task_list = ['goal1', 'goal2', 'button1', 'button2', 'push1', 'push2']
algo_list = ['ppo', 'ppo_lagrangian', 'trpo', 'trpo_lagrangian', 'cpo']
algo = algo.lower()
task = task.capitalize()
robot = robot.capitalize()
assert algo in algo_list, "Invalid algo"
assert task.lower() in task_list, "Invalid task"
assert robot.lower() in robot_list, "Invalid robot"
# Hyperparameters
exp_name = algo + '_' + robot + task
if robot=='Doggo':
num_steps = 1e8
steps_per_epoch = 60000
else:
num_steps = 1e7
steps_per_epoch = 30000
epochs = int(num_steps / steps_per_epoch)
save_freq = 50
target_kl = 0.01
cost_lim = 25
# Fork for parallelizing
mpi_fork(cpu)
# Prepare Logger
exp_name = exp_name or (algo + '_' + robot.lower() + task.lower())
logger_kwargs = setup_logger_kwargs(exp_name, seed)
# Algo and Env
algo = eval('safe_rl.'+algo)
env_name = 'Safexp-'+robot+task+'-v0'
algo(env_fn=lambda: gym.make(env_name),
ac_kwargs=dict(
hidden_sizes=(256, 256),
),
epochs=epochs,
steps_per_epoch=steps_per_epoch,
save_freq=save_freq,
target_kl=target_kl,
cost_lim=cost_lim,
seed=seed,
logger_kwargs=logger_kwargs
)