import torch
import torchvision
from torch.utils.data import DataLoader
from torchvision import transforms, datasets
import matplotlib.pyplot as plt
import numpy as np
data_transform = transforms.Compose([
transforms.Resize((32,32)),
transforms.ToTensor(),
#transforms.Normalize((0.4504, 0.4428, 0.4042), (0.2049, 0.2028, 0.2042)) #v0.2
#transforms.Normalize((0.5068, 0.5102, 0.4634), (0.1993, 0.1966, 0.1984)) #small
])
testdataset = datasets.ImageFolder(root='./rafic10-v0.2',transform=data_transform)
testloader = DataLoader(dataset=testdataset,
batch_size=4,
shuffle=True,
num_workers=4)
classes = ('plane', 'car', 'bird', 'cat',
'deer', 'dog', 'frog', 'horse', 'ship', 'truck')
# functions to show an image
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
def imshow(img):
img = img / 2 + 0.5 # unnormalize
npimg = img.numpy()
plt.imshow(np.transpose(npimg, (1,2,0)))
# show some random training images
dataiter = iter(testloader)
images, labels = dataiter.next()
# print images
imshow(torchvision.utils.make_grid(images))
# print labels
print(' '.join('%5s'%classes[labels[j]] for j in range(4)))
dataloader = torch.utils.data.DataLoader(testdataset, batch_size=1, shuffle=True, num_workers=2)
mean = torch.zeros(3)
std = torch.zeros(3)
print('==> Computing mean and std..')
for inputs, targets in dataloader:
for i in range(3):
#print(inputs)
mean[i] += inputs[:,i,:,:].mean()
std[i] += inputs[:,i,:,:].std()
mean.div_(len(testdataset))
std.div_(len(testdataset))
print(mean)
print(std)