if args.checkpoint is None and args.checkpoints is None: sys.exit(1) # check that server is running while not is_server_running(server): print('Start the server: python3 env_server.py') sleep(sleep_interval) # extract waypoints trajectory_file = osp.join(trajectory_dir, args.trajectory) _, _, waypoints = prepare_trajectories(signal_dir, [trajectory_file], use_inputs=use_inputs, use_outputs=use_outputs, action_scale=action_scale, lookback=lookback) # create environment env_fns = [ make_env(MantsinenBasic, model_path, model_dir, signal_dir, server, data, nsteps, lookback, use_inputs, use_outputs, action_scale, tstep) for data in waypoints ] env = MeveaVecEnv(env_fns) # checkpoints if args.checkpoints is not None:
# check that server is running while not is_server_running(server): print('Start the server: python3 env_server.py') sleep(sleep_interval) # prepare training data trajectory_files = [ osp.join(trajectory_dir, fpath) for fpath in os.listdir(trajectory_dir) if fpath.endswith('csv') ] bc_train, bc_val, waypoints = prepare_trajectories( signal_dir, trajectory_files, use_inputs=use_inputs, use_outputs=use_outputs, action_scale=action_scale, lookback=lookback, tstep=tstep) print(bc_train.shape, bc_val.shape) # create environments env_fns = [ make_env(MantsinenBasic, model_path, model_dir, signal_dir, server, waypoints, nsteps, lookback, use_inputs, use_outputs, action_scale, tstep) ] env = MeveaVecEnv(env_fns) try:
use_signals = False # process arguments parser = argparse.ArgumentParser() parser.add_argument('-m', '--model', help='File path to the Mevea model.', default='C:\\Users\\mevea\\MeveaModels\\Mantsinen\\Models\\Mantsinen300M\\300M_fixed.mvs') parser.add_argument('-s', '--server', help='Server URL.', default='http://127.0.0.1:5000') parser.add_argument('-t', '--trajectories', help='Trajectory files.', default='trajectory1.csv,trajectory2.csv,trajectory3.csv,trajectory4.csv') parser.add_argument('-f', '--frequency', help='Action frequency.', default=0.1, type=float) parser.add_argument('-o', '--output', help='Result output.', default='models/mevea/mantsinen/ppo') args = parser.parse_args() # prepare training data trajectory_files = [osp.join(trajectory_dir, fpath) for fpath in args.trajectories.split(',')] trajectory_data = prepare_trajectories(signal_dir, trajectory_files, args.frequency, use_signals=use_signals) # create environments env_fns = [make_env(MantsinenBasic, args.model, signal_dir, data, args.server, args.frequency, use_signals) for data in trajectory_data] env = MeveaVecEnv(env_fns) # create model model = ppo(MlpPolicy, env, runner=MeveaRunner, verbose=1) # pretrain model model.pretrain(trajectory_data, n_epochs=20000) model.save('{0}/model_checkpoints/rl_model_0_steps.zip'.format(args.output))