import torch
import torchvision
import torchvision.transforms as transforms
Loading data
= transforms.Compose(
transform
[transforms.ToTensor(),0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
transforms.Normalize((
= 4
batch_size
= torchvision.datasets.CIFAR10(root='./data', train=True,
trainset =True, transform=transform)
download= torch.utils.data.DataLoader(trainset, batch_size=batch_size,
trainloader =True, num_workers=2)
shuffle
= torchvision.datasets.CIFAR10(root='./data', train=False,
testset =True, transform=transform)
download= torch.utils.data.DataLoader(testset, batch_size=batch_size,
testloader =False, num_workers=2)
shuffle
= ('plane', 'car', 'bird', 'cat',
classes 'deer', 'dog', 'frog', 'horse', 'ship', 'truck')
Downloading https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz to ./data/cifar-10-python.tar.gz
0%| | 0/170498071 [00:00<?, ?it/s]
0%| | 65536/170498071 [00:00<05:46, 491827.40it/s]
0%| | 229376/170498071 [00:00<03:01, 940231.98it/s]
0%| | 720896/170498071 [00:00<01:08, 2489207.41it/s]
1%| | 1540096/170498071 [00:00<00:37, 4456272.63it/s]
2%|▏ | 2686976/170498071 [00:00<00:24, 6788933.98it/s]
2%|▏ | 3899392/170498071 [00:00<00:19, 8438876.08it/s]
3%|▎ | 5242880/170498071 [00:00<00:16, 9846200.47it/s]
4%|▎ | 6258688/170498071 [00:00<00:19, 8531338.74it/s]
4%|▍ | 7176192/170498071 [00:01<00:20, 7847303.95it/s]
5%|▍ | 8028160/170498071 [00:01<00:21, 7474861.45it/s]
5%|▌ | 8945664/170498071 [00:01<00:23, 6986552.30it/s]
6%|▌ | 10125312/170498071 [00:01<00:19, 8145854.68it/s]
7%|▋ | 11403264/170498071 [00:01<00:19, 8085393.70it/s]
7%|▋ | 12681216/170498071 [00:01<00:17, 9136506.69it/s]
8%|▊ | 13664256/170498071 [00:01<00:18, 8266228.57it/s]
9%|▊ | 14876672/170498071 [00:02<00:19, 8115136.94it/s]
9%|▉ | 16023552/170498071 [00:02<00:17, 8889527.98it/s]
10%|█ | 17235968/170498071 [00:02<00:15, 9663233.51it/s]
11%|█ | 18415616/170498071 [00:02<00:14, 10192680.60it/s]
12%|█▏ | 19693568/170498071 [00:02<00:13, 10788258.47it/s]
12%|█▏ | 20905984/170498071 [00:02<00:13, 11137044.67it/s]
13%|█▎ | 22052864/170498071 [00:02<00:15, 9557520.41it/s]
14%|█▎ | 23068672/170498071 [00:02<00:16, 8727196.54it/s]
14%|█▍ | 24281088/170498071 [00:02<00:15, 9443335.97it/s]
15%|█▍ | 25559040/170498071 [00:03<00:14, 10268372.56it/s]
16%|█▌ | 26804224/170498071 [00:03<00:13, 10723338.45it/s]
16%|█▋ | 27983872/170498071 [00:03<00:12, 10965358.82it/s]
17%|█▋ | 29130752/170498071 [00:03<00:12, 10999441.28it/s]
18%|█▊ | 30277632/170498071 [00:03<00:12, 11092944.06it/s]
18%|█▊ | 31424512/170498071 [00:03<00:14, 9440614.90it/s]
19%|█▉ | 32440320/170498071 [00:03<00:16, 8604088.25it/s]
20%|█▉ | 33685504/170498071 [00:03<00:14, 9532970.77it/s]
20%|██ | 34897920/170498071 [00:03<00:13, 10135662.97it/s]
21%|██ | 36077568/170498071 [00:04<00:12, 10582520.65it/s]
22%|██▏ | 37355520/170498071 [00:04<00:11, 11169621.76it/s]
23%|██▎ | 38502400/170498071 [00:04<00:13, 9773618.49it/s]
23%|██▎ | 39682048/170498071 [00:04<00:14, 8776599.27it/s]
24%|██▍ | 40861696/170498071 [00:04<00:13, 9463453.58it/s]
25%|██▍ | 41877504/170498071 [00:04<00:14, 8655659.33it/s]
25%|██▌ | 43057152/170498071 [00:04<00:13, 9383740.20it/s]
26%|██▌ | 44466176/170498071 [00:05<00:14, 8918961.08it/s]
27%|██▋ | 45580288/170498071 [00:05<00:13, 9435527.18it/s]
27%|██▋ | 46694400/170498071 [00:05<00:12, 9666658.54it/s]
28%|██▊ | 47710208/170498071 [00:05<00:14, 8690365.13it/s]
29%|██▊ | 48627712/170498071 [00:05<00:14, 8168523.84it/s]
29%|██▉ | 49840128/170498071 [00:05<00:13, 9100727.17it/s]
30%|██▉ | 50790400/170498071 [00:05<00:13, 9110841.14it/s]
31%|███ | 52035584/170498071 [00:05<00:11, 9964838.45it/s]
31%|███ | 53149696/170498071 [00:05<00:11, 10248001.60it/s]
32%|███▏ | 54362112/170498071 [00:06<00:10, 10700449.80it/s]
33%|███▎ | 55672832/170498071 [00:06<00:10, 11243036.81it/s]
33%|███▎ | 56819712/170498071 [00:06<00:10, 11161257.33it/s]
34%|███▍ | 57966592/170498071 [00:06<00:10, 11116663.20it/s]
35%|███▍ | 59179008/170498071 [00:06<00:09, 11322832.90it/s]
35%|███▌ | 60325888/170498071 [00:06<00:11, 9942209.91it/s]
36%|███▌ | 61669376/170498071 [00:06<00:10, 10763417.54it/s]
37%|███▋ | 62816256/170498071 [00:06<00:11, 9497849.00it/s]
38%|███▊ | 64094208/170498071 [00:06<00:10, 10264819.30it/s]
38%|███▊ | 65175552/170498071 [00:07<00:11, 9240127.87it/s]
39%|███▉ | 66453504/170498071 [00:07<00:10, 10058185.89it/s]
40%|███▉ | 67633152/170498071 [00:07<00:11, 9072239.63it/s]
40%|████ | 68812800/170498071 [00:07<00:10, 9707277.11it/s]
41%|████ | 69861376/170498071 [00:07<00:10, 9705162.98it/s]
42%|████▏ | 71041024/170498071 [00:07<00:09, 10230674.10it/s]
42%|████▏ | 72253440/170498071 [00:07<00:09, 10719508.02it/s]
43%|████▎ | 73367552/170498071 [00:07<00:10, 9165090.08it/s]
44%|████▎ | 74579968/170498071 [00:08<00:09, 9914670.67it/s]
44%|████▍ | 75628544/170498071 [00:08<00:10, 9393229.65it/s]
45%|████▌ | 76840960/170498071 [00:08<00:09, 10102760.55it/s]
46%|████▌ | 78151680/170498071 [00:08<00:08, 10776594.99it/s]
46%|████▋ | 79265792/170498071 [00:08<00:09, 9130592.02it/s]
47%|████▋ | 80445440/170498071 [00:08<00:09, 9771793.60it/s]
48%|████▊ | 81690624/170498071 [00:08<00:09, 9036318.07it/s]
49%|████▊ | 82870272/170498071 [00:08<00:09, 9686936.54it/s]
49%|████▉ | 83918848/170498071 [00:09<00:09, 9524420.01it/s]
50%|████▉ | 85032960/170498071 [00:09<00:08, 9915047.72it/s]
51%|█████ | 86245376/170498071 [00:09<00:08, 10405683.29it/s]
51%|█████ | 87326720/170498071 [00:09<00:10, 8265636.02it/s]
52%|█████▏ | 88539136/170498071 [00:09<00:09, 8953860.21it/s]
53%|█████▎ | 89751552/170498071 [00:09<00:08, 9704131.64it/s]
53%|█████▎ | 91029504/170498071 [00:09<00:07, 10463877.79it/s]
54%|█████▍ | 92209152/170498071 [00:09<00:07, 10703416.42it/s]
55%|█████▍ | 93683712/170498071 [00:09<00:07, 9862609.56it/s]
56%|█████▌ | 94961664/170498071 [00:10<00:07, 10491658.61it/s]
56%|█████▋ | 96272384/170498071 [00:10<00:06, 10997980.66it/s]
57%|█████▋ | 97419264/170498071 [00:10<00:07, 10342494.00it/s]
58%|█████▊ | 98697216/170498071 [00:10<00:06, 10767972.20it/s]
59%|█████▊ | 99811328/170498071 [00:10<00:07, 9199253.34it/s]
59%|█████▉ | 100925440/170498071 [00:10<00:07, 9645422.69it/s]
60%|█████▉ | 102137856/170498071 [00:10<00:06, 10217765.32it/s]
61%|██████ | 103251968/170498071 [00:10<00:06, 10436919.87it/s]
61%|██████▏ | 104628224/170498071 [00:11<00:05, 11241775.49it/s]
62%|██████▏ | 105807872/170498071 [00:11<00:06, 9989479.73it/s]
63%|██████▎ | 107053056/170498071 [00:11<00:05, 10593145.95it/s]
64%|██████▎ | 108363776/170498071 [00:11<00:05, 11254452.83it/s]
64%|██████▍ | 109543424/170498071 [00:11<00:06, 9843570.45it/s]
65%|██████▍ | 110592000/170498071 [00:11<00:06, 8765047.14it/s]
66%|██████▌ | 111869952/170498071 [00:11<00:06, 9367360.92it/s]
66%|██████▋ | 113147904/170498071 [00:11<00:05, 10176890.98it/s]
67%|██████▋ | 114393088/170498071 [00:12<00:05, 10675017.04it/s]
68%|██████▊ | 115638272/170498071 [00:12<00:04, 11091521.45it/s]
69%|██████▊ | 116817920/170498071 [00:12<00:05, 9888741.53it/s]
69%|██████▉ | 118063104/170498071 [00:12<00:04, 10530585.33it/s]
70%|██████▉ | 119177216/170498071 [00:12<00:05, 9416961.93it/s]
71%|███████ | 120422400/170498071 [00:12<00:05, 10010110.58it/s]
71%|███████▏ | 121602048/170498071 [00:12<00:04, 10251330.49it/s]
72%|███████▏ | 122912768/170498071 [00:12<00:04, 10914642.76it/s]
73%|███████▎ | 124059648/170498071 [00:12<00:04, 9478166.18it/s]
73%|███████▎ | 125075456/170498071 [00:13<00:05, 8655163.92it/s]
74%|███████▍ | 126287872/170498071 [00:13<00:04, 9454623.65it/s]
75%|███████▍ | 127565824/170498071 [00:13<00:04, 10275821.03it/s]
75%|███████▌ | 128679936/170498071 [00:13<00:04, 9359271.99it/s]
76%|███████▌ | 129892352/170498071 [00:13<00:04, 10005134.14it/s]
77%|███████▋ | 130940928/170498071 [00:13<00:04, 8661423.25it/s]
78%|███████▊ | 132186112/170498071 [00:13<00:04, 9556489.33it/s]
78%|███████▊ | 133398528/170498071 [00:13<00:03, 10179632.29it/s]
79%|███████▉ | 134479872/170498071 [00:14<00:03, 9053953.22it/s]
80%|███████▉ | 135626752/170498071 [00:14<00:03, 9620322.16it/s]
80%|████████ | 136904704/170498071 [00:14<00:03, 10393682.05it/s]
81%|████████ | 138018816/170498071 [00:14<00:03, 9078843.53it/s]
82%|████████▏ | 139231232/170498071 [00:14<00:03, 9809915.73it/s]
82%|████████▏ | 140279808/170498071 [00:14<00:03, 8856672.50it/s]
83%|████████▎ | 141524992/170498071 [00:14<00:02, 9688614.65it/s]
84%|████████▎ | 142770176/170498071 [00:14<00:02, 10406938.77it/s]
85%|████████▍ | 144080896/170498071 [00:15<00:02, 11027237.69it/s]
85%|████████▌ | 145358848/170498071 [00:15<00:02, 11464534.95it/s]
86%|████████▌ | 146538496/170498071 [00:15<00:02, 11417382.19it/s]
87%|████████▋ | 147718144/170498071 [00:15<00:01, 11467558.89it/s]
87%|████████▋ | 148897792/170498071 [00:15<00:02, 9689819.11it/s]
88%|████████▊ | 150077440/170498071 [00:15<00:02, 9427562.29it/s]
89%|████████▉ | 151322624/170498071 [00:15<00:01, 10055870.00it/s]
89%|████████▉ | 152371200/170498071 [00:15<00:01, 9235629.51it/s]
90%|█████████ | 153452544/170498071 [00:16<00:02, 8437022.91it/s]
91%|█████████ | 154337280/170498071 [00:16<00:01, 8307480.25it/s]
91%|█████████ | 155418624/170498071 [00:16<00:01, 7834149.03it/s]
92%|█████████▏| 156532736/170498071 [00:16<00:01, 8511268.94it/s]
93%|█████████▎| 157810688/170498071 [00:16<00:01, 9571853.06it/s]
93%|█████████▎| 158826496/170498071 [00:16<00:01, 9432659.33it/s]
94%|█████████▍| 159940608/170498071 [00:16<00:01, 9859691.35it/s]
94%|█████████▍| 160956416/170498071 [00:16<00:01, 8890826.83it/s]
95%|█████████▌| 162168832/170498071 [00:16<00:00, 9715547.00it/s]
96%|█████████▌| 163446784/170498071 [00:17<00:00, 10442010.43it/s]
96%|█████████▋| 164528128/170498071 [00:17<00:00, 9931063.29it/s]
97%|█████████▋| 165806080/170498071 [00:17<00:00, 10699374.78it/s]
98%|█████████▊| 166920192/170498071 [00:17<00:00, 10368457.48it/s]
99%|█████████▊| 168067072/170498071 [00:17<00:00, 10638501.55it/s]
99%|█████████▉| 169312256/170498071 [00:17<00:00, 11148137.01it/s]
100%|█████████▉| 170459136/170498071 [00:17<00:00, 9529530.07it/s]
100%|██████████| 170498071/170498071 [00:17<00:00, 9591546.00it/s]
Extracting ./data/cifar-10-python.tar.gz to ./data
Files already downloaded and verified
import matplotlib.pyplot as plt
import numpy as np
# functions to show an image
def imshow(img):
= img / 2 + 0.5 # unnormalize
img = img.numpy()
npimg 1, 2, 0)))
plt.imshow(np.transpose(npimg, (
plt.show()
# get some random training images
= iter(trainloader)
dataiter = next(dataiter)
images, labels
# show images
imshow(torchvision.utils.make_grid(images))# print labels
print(' '.join(f'{classes[labels[j]]:5s}' for j in range(batch_size)))
truck cat dog truck
Creating a DataLoader
A DataLoader
is an iterable feeding data to a model. When we train a model, we run it for each element of the DataLoader in a for loop:
for i in data_loader:
<some model>