-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patheval.py
69 lines (56 loc) · 2.28 KB
/
eval.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
import sys, os
import numpy as np
import torch
from torchvision import transforms
from signaldata import SignalData, SignalDataEval
mean, std = 0, 0.1
train_dataset = SignalDataEval(train=True, transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((mean,), (std,))
]))
classes = train_dataset.classes
test_dataset = SignalDataEval(train=False, transform=transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((mean,), (std,))
]))
from datasets import Siamese, SiameseEval
siamese_train_dataset = SiameseEval(train_dataset) # Returns pairs of images and target same/different
siamese_test_dataset = SiameseEval(test_dataset)
cuda = torch.cuda.is_available()
batch_size = 128
kwargs = {'num_workers': 1, 'pin_memory': True} if cuda else {}
siamese_train_loader = torch.utils.data.DataLoader(siamese_train_dataset, batch_size=batch_size, shuffle=False, **kwargs)
siamese_test_loader = torch.utils.data.DataLoader(siamese_test_dataset, batch_size=batch_size, shuffle=False, **kwargs)
from networks import EmbeddingNet, SiameseNet
embedding_net = EmbeddingNet()
model = SiameseNet(embedding_net)
if cuda:
model.cuda()
from trainer import semantic, eval_precious
#model = torch.load('./model.pkl')
embedding_net = torch.load('./embedding.pkl')
# with torch.no_grad():
# model.eval()
# for batch_idx, (data, target) in enumerate(siamese_train_loader):
# print(data[0])
# outputs = embedding_net(data).numpy()
# print(outputs[0])
# break
classes_semantic = semantic(siamese_train_loader, embedding_net, cuda)
epsilon = 1e9
test_precious = eval_precious(siamese_test_loader, classes_semantic, embedding_net, epsilon, cuda)
print(test_precious)
# maxn = 0
# for epsilon in np.arange(0.01, 1, 0.01):
# sumn = 0
# test_precious = eval_precious(siamese_test_loader, classes_semantic, embedding_net, epsilon, cuda)
# for i in test_precious.keys():
# sumn += test_precious[i]
# tem = sumn/len(classes)
# print(tem)
# if maxn < tem:
# maxn = tem
# result = epsilon
#
# print(result)
#torch.save(embedding_net, './embedding.pkl')