42 lines
1.7 KiB
Python
42 lines
1.7 KiB
Python
import argparse
|
|
import os
|
|
import pandas as pd
|
|
import sys
|
|
import tensorflow as tf
|
|
import yaml
|
|
|
|
from lib.utils import load_graph_data
|
|
from model.dcrnn_supervisor import DCRNNSupervisor
|
|
|
|
|
|
def run_dcrnn(args):
|
|
graph_pkl_filename = 'data/sensor_graph/adj_mx.pkl'
|
|
with open(args.config_filename) as f:
|
|
config = yaml.load(f)
|
|
tf_config = tf.ConfigProto()
|
|
if args.use_cpu_only:
|
|
tf_config = tf.ConfigProto(device_count={'GPU': 0})
|
|
tf_config.gpu_options.allow_growth = True
|
|
_, _, adj_mx = load_graph_data(graph_pkl_filename)
|
|
with tf.Session(config=tf_config) as sess:
|
|
supervisor = DCRNNSupervisor(adj_mx=adj_mx, **config)
|
|
supervisor.restore(sess, config=config)
|
|
df_preds = supervisor.test_and_write_result(sess, config['global_step'])
|
|
# TODO (yaguang): save this file to the npz file.
|
|
for horizon_i in df_preds:
|
|
df_pred = df_preds[horizon_i]
|
|
filename = os.path.join('data/results/', 'dcrnn_prediction_%d.h5' % (horizon_i + 1))
|
|
df_pred.to_hdf(filename, 'results')
|
|
print('Predictions saved as data/results/dcrnn_seq2seq_prediction_[1-12].h5...')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.path.append(os.getcwd())
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('--traffic_df_filename', default='data/df_highway_2012_4mon_sample.h5',
|
|
type=str, help='Traffic data file.')
|
|
parser.add_argument('--use_cpu_only', default=False, type=str, help='Whether to run tensorflow on cpu.')
|
|
parser.add_argument('--config_filename', default=None, type=str, help='Config file for pretrained model.')
|
|
args = parser.parse_args()
|
|
run_dcrnn(args)
|