Exemplo n.º 1
0
    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:
Exemplo n.º 2
0
    # 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))