Esempio n. 1
0
def main():
    ##Parameters = dataBase name, table name, file name
    data = dataReader('TrafficData', 'nycData', 'NYCTrafficVolumeCounts.csv')

    ###Cross Bronx Expressway
    cbe = data.query("""
select * from nycData where [Roadway Name] = 'Cross Bronx Expressway'

""")
    crossBronxExpressway = data.extract(cbe)

    ###data graph on Cross Bronx Expressway
    data.scatter(crossBronxExpressway, "Cross Bronx Expressway")

    cbeVals = data.createList(crossBronxExpressway)

    avgCbe = data.maxAverageValue(cbeVals)
    print("Average of top 5 hours for traffic counts\nCross Brox Expressway: ")
    print(avgCbe)

    ###
    e42 = data.query("""
select * from nycData where [Roadway Name] = 'FDR Drive'
and [from] = 'East 42 Street'
and [to] = 'East 43 Street'
""")
    east42 = data.extract(e42)
    data.scatter(east42, "East 42nd Street")

    east42Vals = data.createList(east42)

    avgEast42 = data.maxAverageValue(east42Vals)
    print("")
    print("Average of the top 5 traffic counts\nEast 42nd Street")
    print(avgEast42)
Esempio n. 2
0
def infer(args, best=True, criterion=nn.CrossEntropyLoss()):
    data_dir = args.data_dir
    run_id = args.run_id
    params_path = os.path.join(os.getcwd(), args.output_dir, args.run_id,
                               "log", "params.txt")
    params_file = open(params_path, "r")
    params = {}
    for line in params_file:
        temp = line.split()
        params[str(temp[0])] = temp[2]
    load_args(args, params)
    setattr(args, "data_dir", data_dir)
    checkpoint_name = "best_checkpoint"
    if not best:
        checkpoint_name = "last_checkpoint"
    checkpoint_path = os.path.join(os.getcwd(), args.output_dir, args.run_id,
                                   "save", checkpoint_name)
    print checkpoint_path
    if not os.path.exists(checkpoint_path):
        raise ValueError(
            "No checkpoint found. Please train the model before testing")
    all_datasets = dataReader(args)
    train_data = all_datasets['train']
    val_data = all_datasets['validation']
    test_data = all_datasets['test']
    model = load_model(args)
    if HAVE_CUDA:
        model = model.cuda()
    loss, accuracy, iou = get_validation_loss(args,
                                              train_data,
                                              model,
                                              criterion,
                                              infer=True)
    print loss, accuracy, iou
    loss, accuracy, iou = get_validation_loss(args,
                                              val_data,
                                              model,
                                              criterion,
                                              infer=True)
    print loss, accuracy, iou
    loss, accuracy, iou = get_validation_loss(args,
                                              test_data,
                                              model,
                                              criterion,
                                              infer=True)
    print loss, accuracy, iou

    return loss
Esempio n. 3
0
def test(args, best=True, criterion=nn.CrossEntropyLoss()):
    checkpoint_name = "best_checkpoint"
    if not best:
        checkpoint_name = "last_checkpoint"
    checkpoint_path = os.path.join(os.getcwd(), args.output_dir, args.run_id,
                                   "save", checkpoint_name)
    print checkpoint_path
    if not os.path.exists(checkpoint_path):
        raise ValueError(
            "No checkpoint found. Please train the model before testing")
    all_datasets = dataReader(args)
    test_data = all_datasets['test']
    model = load_model(args)
    if HAVE_CUDA:
        model = model.cuda()
    test_loss, accuracy, iou = get_validation_loss(args, test_data, model,
                                                   criterion)
    print test_loss, accuracy, iou

    return test_loss
def analyze():

    analyzeData = dataReader('TrafficData', 'nycData',
                             'NYCTrafficVolumeCounts.csv')

    successGroup = analyzeData.query("""
select * from nycData where [8:00-9:00AM] < '3000' 
""")

    failGroup = analyzeData.query("""
select * from nycData where [8:00-9:00AM] > '3000'
""")

    successGroupTotal = 0
    failGroupTotal = 0

    fig = plt.figure()
    fig.subplots_adjust(top=0.8)
    ax1 = fig.add_subplot(211)
    ax1.set_ylabel("# of Cars")
    ax1.set_xlabel("Day/Street")
    ax1.set_title("Traffic Counts vs. Model Speed")

    for i in successGroup['8:00-9:00AM']:
        successGroupTotal += 1
        print(successGroupTotal)
        ax1.scatter(successGroupTotal, i)

    for i in failGroup['8:00-9:00AM']:
        failGroupTotal += 1
        ax1.scatter((successGroupTotal + failGroupTotal), i)

    plt.show()

    print(successGroupTotal)
    print(failGroupTotal)
    total = successGroupTotal + failGroupTotal

    successRate = (successGroupTotal / total) * 100
    print(successRate)
Esempio n. 5
0
def dtrain2(args):
    # Dataset loading and preparing env
    all_datasets = dataReader(args)
    train_data = all_datasets['train']
    validation_data = all_datasets['validation']
    model = UNet(num_classes=3)
    # model = UNetj(3, 3)
    # model = UNetm(3,3)
    for batch in train_data:
        print batch[0][0]
        print model(ag.Variable(batch[0].float()))[0][0][0:5]
        # print model(ag.Variable(batch[0].float()))[1][0][0][0:5]
        break
    criterion = nn.MSELoss()
    optimizer = optim.Adam(model.parameters(), lr=0.01)
    for i in range(100):
        model, optimizer, present_train_loss = dtrain_epoch2(
            args, train_data, model, optimizer, criterion)
        if i % 10 == 0:
            print "Loss", present_train_loss
    for batch in train_data:
        print batch[0][0]
        print model(ag.Variable(batch[0].float()))[0][0][0:5]
        break
Esempio n. 6
0
def train(args):

    # Dataset loading and preparing env
    all_datasets = dataReader(args)
    train_data = all_datasets['train']
    validation_data = all_datasets['validation']
    logger = ""
    best_train_loss = float("Inf")
    best_validation_loss = float("Inf")
    best_epoch = -1

    # instantiate model and optimizer
    model = load_model(args)
    model.train()
    if HAVE_CUDA:
        model = model.cuda()
    criterion = nn.CrossEntropyLoss()
    optimizer = load_optimizer(args, model)

    # log info
    prepare_env(args)
    output_args(args)
    loss_vals = []
    train_acc_vals = []
    val_acc_vals = []
    train_iou_vals = []
    val_iou_vals = []
    train_start_time = time.time()
    epoch_start_time = train_start_time
    for i in range(args.num_epochs):

        # run model
        print "==========================================================================================="
        print "Epoch(", i, "/", args.num_epochs, ")"
        model, optimizer, present_train_loss, train_accuracy, train_iou, train_loss_vals = train_epoch(
            args, train_data, model, optimizer, criterion)
        loss_vals.extend(train_loss_vals)
        present_validation_loss, validation_accuracy, validation_iou = get_validation_loss(
            args, validation_data, model, criterion)
        train_acc_vals.append(train_accuracy)
        val_acc_vals.append(validation_accuracy)
        train_iou_vals.append(train_iou)
        val_iou_vals.append(validation_iou)
        save_data(args, model, optimizer)
        if present_validation_loss < best_validation_loss:
            save_data(args, model, optimizer, True)
            best_epoch = i
            best_validation_loss = present_validation_loss
        ##########################################Logging info#############################################
        end_time = time.time()
        epoch_duration = end_time - epoch_start_time
        epoch_start_time = end_time
        print "Duration: ", epoch_duration
        print ""
        print "Loss:"
        print "Training  ", present_train_loss
        print "Validation", present_validation_loss
        print ""
        print "Accuracy:"
        print "Training  ", train_accuracy
        print "Validation", validation_accuracy
        print ""
        print "IoU:"
        print "Training  ", train_iou
        print "Validation", validation_iou
        print ""
        print "Best Epoch", best_epoch
        ###################################################################################################
        # break
    save_data(args, model.cpu(), optimizer)

    loss_vals = np.squeeze(np.array(loss_vals))
    train_acc_vals = np.squeeze(np.array(train_acc_vals))
    val_acc_vals = np.squeeze(np.array(val_acc_vals))
    loss_save_path = os.path.join(os.getcwd(), args.output_dir, args.run_id,
                                  "save", "loss")
    np.save(loss_save_path, loss_vals)
    train_save_path = os.path.join(os.getcwd(), args.output_dir, args.run_id,
                                   "save", "train_accuracy")
    np.save(train_save_path, train_acc_vals)
    val_save_path = os.path.join(os.getcwd(), args.output_dir, args.run_id,
                                 "save", "val_accuracy")
    np.save(val_save_path, val_acc_vals)
    train_save_path = os.path.join(os.getcwd(), args.output_dir, args.run_id,
                                   "save", "train_iou")
    np.save(train_save_path, train_iou_vals)
    val_save_path = os.path.join(os.getcwd(), args.output_dir, args.run_id,
                                 "save", "val_iou")
    np.save(val_save_path, val_iou_vals)
    total_training_time = time.time() - train_start_time
    print "Total training time: ", total_training_time
Esempio n. 7
0
def check(args):
    data = dataReader(args)
    for i, d in enumerate(data['train']):
        print d[0][0]
        break