예제 #1
0
def main():
    parser = argparse.ArgumentParser(description='Placement')
    parser.add_argument("-c",
                        "--config",
                        help="path to config file",
                        default="")
    parser.add_argument("-i", "--input", help="path to data file", default="")
    parser.add_argument("-d",
                        "--debug",
                        help="debug mode",
                        action="store_const",
                        dest="loglevel",
                        const=logging.DEBUG,
                        default=logging.WARNING)
    parser.add_argument("-p",
                        "--pickle",
                        help="create pickle files",
                        action="store_true",
                        dest="create_pickle")
    parser.add_argument("-v",
                        "--verbose",
                        help="verbose mode",
                        action="store_const",
                        dest="loglevel",
                        const=logging.INFO)

    args = parser.parse_args(sys.argv[1:])
    logging.basicConfig(format='%(asctime)s main: %(message)s',
                        level=args.loglevel)

    config = pandas.read_csv(args.config, sep=',')
    X = pandas.read_csv(args.input, sep=',',
                        header=None).values.astype(np.float64)
    """
    discretize the space into cells
    """
    geo_utils = helpers.GeoUtilities(config['lat_min'].iloc[0],
                                     config['lat_max'].iloc[0],
                                     config['lng_min'].iloc[0],
                                     config['lng_max'].iloc[0],
                                     cell_length_meters)
    geo_utils.set_grids()
    """
    segregate data based on time bins
    """
    train_time_utils = helpers.TimeUtilities(time_bin_width_secs)
    train_time_utils.set_bounds(X)
    logging.info("Loaded %d data points", len(X))

    sim = Sim(X, len(geo_utils.lng_grids), train_time_utils, geo_utils,
              action_dim, time_bins_per_hour)
    """
    starting time-step for training and testing time bins (tb)
    """
    test_tb_starts = [time_bins_per_hour]
    train_tb_starts = [
        time_bins_per_day * 4 + time_bins_per_hour,
        time_bins_per_day * 5 + time_bins_per_hour,
        time_bins_per_day * 6 + time_bins_per_hour
    ]

    train_bins = range(time_bins_per_day * 4 + time_bins_per_hour,
                       time_bins_per_day * 7, time_bins_per_day)

    if args.create_pickle:
        helpers.load_create_pickle(sim, train_time_utils, geo_utils, X,
                                   train_tb_starts, test_tb_starts)

    with open(r"rrs.pickle", "rb") as input_file:
        sim.rrs = cPickle.load(input_file)
        sim.n_reqs = cPickle.load(input_file)
        sim.pre_sim_pickups = cPickle.load(input_file)

    with tf.Session() as sess:
        worker = Worker('worker', sim, 10, train_bins, test_tb_starts,
                        sim.num_cells, sim.n_actions)

        sess.run(tf.global_variables_initializer())
        worker.train(sess)
    """
    model = A2C(sim, 10, 
                train_windows, test_window,
                sim.num_cells,
                sim.n_actions, hidden_units)
    model.train()
    """
    '''