-
Notifications
You must be signed in to change notification settings - Fork 0
/
visualise.py
49 lines (37 loc) · 1.42 KB
/
visualise.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
'''
pour la visualisation d'une ensemble de donnée
on se contentera d'un seul bacth
'''
from torch.utils.data.dataloader import DataLoader
import torchvision
import config
from datasetSync import ImageClefDataset
import numpy as np
import matplotlib.pyplot as plt
def imageShow(dataloader, toshow=-1):
'''data loader: pour la sampling, donne directement une batch
toshow= nombre d'image a afficher = -1 default toute la batch
'''
inputs, classes = next(iter(dataloader))
if toshow ==-1:
toshow=inputs.size()[0]
inputs, classes=inputs[:toshow] , classes[:toshow]
out = torchvision.utils.make_grid(inputs)
inp = out.numpy().transpose((1, 2, 0))
mean = np.array([0.485, 0.456, 0.406])
std = np.array([0.229, 0.224, 0.225])
inp = std * inp + mean
classes=classes.cpu().numpy()
multilabelEncoder= dataloader.dataset.mlb
title = multilabelEncoder.inverse_transform(classes)
plt.title(title)
plt.imshow(inp)
plt.show()
if __name__=="__main__":
clefdset = {x: ImageClefDataset(config.Configuration.__dict__[ x+"Images"],".jpg",x) for x in ['train', 'val']}
dset_loaders = {x: DataLoader(clefdset[x], batch_size=128,
shuffle=True,
num_workers=1, # 1 for CUDA
)for x in ['train', 'val']
}
imageShow(dset_loaders['train'], toshow=5)