Data Loader 사용법 2020-09-21 · 배운 것 · 5분 읽기
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable
from torch.utils.data import Dataset, DataLoader
import numpy as np
import torchvision
import torchvision.transforms as transforms
transform = transforms.Compose([transforms.ToTensor(),
transforms.Normalize((0.5,0.5,0.5), (0.5,0.5,0.5))])
trainset = torchvision . datasets . CIFAR10(root = ' ./data ',
train = True,
download = True,
transform = transform)
testset = torchvision . datasets . CIFAR10(root = ' ./data ',
train = False,
download = True,
transform = transform)
Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data \ cifar- 10 -python.tar.gz
Files already downloaded and verified
trainloader = DataLoader(trainset, batch_size=8, shuffle=True, num_workers=2)
testloader = DataLoader(testset, batch_size = 8, shuffle=False, num_workers=2)
classes = ( 'plane' , 'car' , 'bird' , 'cat' , 'deer' , 'dog' , 'frog' , 'horse' , 'ship' , 'truck' )
def imshow(img):
img = img/2 +0.5 # unnormalize
np_img = img.numpy()
#ToTensor의 h x w x c 순에서
#c x h x w 순으로 변경
plt.imshow(np.transpose(np_img, (1,2,0)))
print(np_img.shape)
print((np.transpose(np_img, (1,2,0))).shape)
dataiter = iter(trainloader)
images, labels = dataiter.next()
print (images.shape)
imshow(torchvision.utils.make_grid(images, nrow=4))
torch.Size([8, 3, 32, 32])
(3, 70, 138)
(70, 138, 3)
print (images . shape )
print (torchvision . utils . make_grid (images, nrow = 4 ) . shape )
print (torchvision . utils . make_grid (images) . shape )
print ( '' . join ( '%5s' % classes[labels [ j ] ] for j in range ( 8 )))
torch.Size([8, 3, 32, 32])
torch.Size([3, 70, 138])
torch.Size([3, 36, 274])
ship frog deer bird cat deer dog cat