forked from gdubrg/Eye-Tracking-for-Everyone
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_small.py
70 lines (49 loc) · 1.65 KB
/
test_small.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import os
from load_data import load_data_from_npz, load_batch
from models import get_eye_tracker_model
import numpy as np
def test_small(args):
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = args.dev
dataset_path = ""
print("Dataset: {}".format(dataset_path))
weights_path = ""
print("Weights: {}".format(weights_path))
# image parameter
img_cols = 64
img_rows = 64
img_ch = 3
# test parameter
batch_size = args.batch_size
# model
model = get_eye_tracker_model(img_ch, img_cols, img_rows)
# model summary
model.summary()
# weights
print("Loading weights...")
model.load_weights(weights_path)
# data
train_data, val_data = load_data_from_npz(dataset_path)
print("Loading testing data...")
x, y = load_batch([l[:] for l in val_data], img_ch, img_cols, img_rows)
print("Done.")
predictions = model.predict(x=x, batch_size=batch_size, verbose=1)
# print and analyze predictions
err_x = []
err_y = []
for i, prediction in enumerate(predictions):
print("PR: {} {}".format(prediction[0], prediction[1]))
print("GT: {} {} \n".format(y[i][0], y[i][1]))
err_x.append(abs(prediction[0] - y[i][0]))
err_y.append(abs(prediction[1] - y[i][1]))
# mean absolute error
mae_x = np.mean(err_x)
mae_y = np.mean(err_y)
# standard deviation
std_x = np.std(err_x)
std_y = np.std(err_y)
# final results
print("MAE: {} {} ({} samples)".format(mae_x, mae_y, len(y)))
print("STD: {} {} ({} samples)".format(std_x, std_y, len(y)))
if __name__ == '__main__':
test_small()