best_val_score = val_score copy_the_model(model, saved_model) if val_score < prev_val_score: early_stop_count -= 1 print("Early stopping count reduced to " + str(early_stop_count)) else: early_stop_count = MAX_EARLY_STOP_COUNT prev_val_score = val_score h_test = [] for i in range(x_test.shape[0] // saved_model.batch_size + 1): h_test.append( saved_model.encoder(x_test[i * saved_model.batch_size:(i + 1) * saved_model.batch_size].transpose( 1, 0, 2).astype(theano.config.floatX))) h_test = np.concatenate(h_test) print("Accuracy on test: %0.4f" % clf.get_accuracy(h_test, Y_test)) y_test = clf.predict(h_test) df = pd.DataFrame(y_test) df['traj'] = test_traj groupby = df.groupby('traj').sum() trip_preds = groupby.idxmax(1) trip_accuracy = float( sum([traj_to_driver[k] == v for (k, v) in trip_preds.iteritems()])) / trip_preds.shape[0] print("Trip level prediction accuracy = {:.2f}".format(trip_accuracy))