-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtmp
125 lines (46 loc) · 1.96 KB
/
tmp
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
def test(test_loader_q, test_loader_g, model, epoch):
print('>> Evaluating network on test datasets...')
batch_time = AverageMeter()
data_time = AverageMeter()
end = time.time()
model.eval()
dataset_q = []
cluster_q = []
for step, (x, lbl, _) in enumerate(test_loader_q):
batch_time.update(time.time() - end)
end = time.time()
x = x.cuda()
x = x.contiguous()
with torch.no_grad():
vec, _, _ = model(x)
dataset_q.extend(vec.unsqueeze(0))
cluster_q.extend(lbl.cpu().numpy())
if step % 100 == 0:
print('>> Test: [{0}][{1}/{2}]\t'
'Time {batch_time.val:.3f} ({batch_time.avg:.3f})\t'
'Data {data_time.val:.3f} ({data_time.avg:.3f})\t'
.format(
epoch+1, step+1, len(test_loader_q), batch_time=batch_time,
data_time=data_time))
dataset_q = torch.cat(dataset_q, dim = 0)
dataset_g = []
cluster_g = []
for step, (x, lbl, _) in enumerate(test_loader_g):
batch_time.update(time.time() - end)
end = time.time()
x = x.cuda()
x = x.contiguous()
with torch.no_grad():
vec, _, _ = model(x)
dataset_g.extend(vec.unsqueeze(0))
cluster_g.extend(lbl.cpu().numpy())
if step % 100 == 0:
print('>> Test: [{0}][{1}/{2}]\t'
'Time {batch_time.val:.3f} ({batch_time.avg:.3f})\t'
'Data {data_time.val:.3f} ({data_time.avg:.3f})\t'
.format(
epoch+1, step+1, len(test_loader_g), batch_time=batch_time,
data_time=data_time))
dataset_g = torch.cat(dataset_g, dim = 0)
mAP,recall = Test(dataset_q,dataset_g,cluster_q,cluster_g)
return 0, 0, mAP, recall