1
+ {
2
+ "nbformat" : 4 ,
3
+ "nbformat_minor" : 0 ,
4
+ "metadata" : {
5
+ "colab" : {
6
+ "name" : " MNIST.ipynb" ,
7
+ "version" : " 0.3.2" ,
8
+ "provenance" : [],
9
+ "collapsed_sections" : [],
10
+ "include_colab_link" : true
11
+ },
12
+ "kernelspec" : {
13
+ "name" : " python3" ,
14
+ "display_name" : " Python 3"
15
+ },
16
+ "accelerator" : " GPU"
17
+ },
18
+ "cells" : [
19
+ {
20
+ "cell_type" : " markdown" ,
21
+ "metadata" : {
22
+ "id" : " view-in-github" ,
23
+ "colab_type" : " text"
24
+ },
25
+ "source" : [
26
+ " <a href=\" https://colab.research.google.com/github/DivyaWadehra/AI-LAB/blob/master/MNIST.ipynb\" target=\" _parent\" ><img src=\" https://colab.research.google.com/assets/colab-badge.svg\" alt=\" Open In Colab\" /></a>"
27
+ ]
28
+ },
29
+ {
30
+ "cell_type" : " code" ,
31
+ "metadata" : {
32
+ "id" : " QxPV3j6Pa8YI" ,
33
+ "colab_type" : " code" ,
34
+ "colab" : {}
35
+ },
36
+ "source" : [
37
+ " import torch\n " ,
38
+ " import torch.nn as nn\n " ,
39
+ " import torchvision.datasets as datasets\n " ,
40
+ " import torchvision.transforms as transforms\n " ,
41
+ " from torch.autograd import Variable"
42
+ ],
43
+ "execution_count" : 0 ,
44
+ "outputs" : []
45
+ },
46
+ {
47
+ "cell_type" : " code" ,
48
+ "metadata" : {
49
+ "id" : " BXw-TM5IbFHn" ,
50
+ "colab_type" : " code" ,
51
+ "colab" : {}
52
+ },
53
+ "source" : [
54
+ " input_size=784\n " ,
55
+ " hidden_size=400\n " ,
56
+ " out_size=10\n " ,
57
+ " epochs=10\n " ,
58
+ " batch_size=100\n " ,
59
+ " learning_rate=0.001"
60
+ ],
61
+ "execution_count" : 0 ,
62
+ "outputs" : []
63
+ },
64
+ {
65
+ "cell_type" : " code" ,
66
+ "metadata" : {
67
+ "id" : " ma3fE4yMbjmP" ,
68
+ "colab_type" : " code" ,
69
+ "colab" : {}
70
+ },
71
+ "source" : [
72
+ " train_dataset=datasets.MNIST(root=\" ./data\" ,train=True,transform=transforms.ToTensor(),download=True)"
73
+ ],
74
+ "execution_count" : 0 ,
75
+ "outputs" : []
76
+ },
77
+ {
78
+ "cell_type" : " code" ,
79
+ "metadata" : {
80
+ "id" : " 1-2LUc_8bxyn" ,
81
+ "colab_type" : " code" ,
82
+ "colab" : {}
83
+ },
84
+ "source" : [
85
+ " test_dataset=datasets.MNIST(root=\" ./data\" ,train=False,transform=transforms.ToTensor())"
86
+ ],
87
+ "execution_count" : 0 ,
88
+ "outputs" : []
89
+ },
90
+ {
91
+ "cell_type" : " code" ,
92
+ "metadata" : {
93
+ "id" : " gMLcDuTWb8MR" ,
94
+ "colab_type" : " code" ,
95
+ "colab" : {}
96
+ },
97
+ "source" : [
98
+ " train_loader=torch.utils.data.DataLoader(dataset=train_dataset,batch_size=batch_size,shuffle=True)"
99
+ ],
100
+ "execution_count" : 0 ,
101
+ "outputs" : []
102
+ },
103
+ {
104
+ "cell_type" : " code" ,
105
+ "metadata" : {
106
+ "id" : " 68Crq0okcH6m" ,
107
+ "colab_type" : " code" ,
108
+ "colab" : {}
109
+ },
110
+ "source" : [
111
+ " test_loader=torch.utils.data.DataLoader(dataset=test_dataset,batch_size=batch_size,shuffle=False)"
112
+ ],
113
+ "execution_count" : 0 ,
114
+ "outputs" : []
115
+ },
116
+ {
117
+ "cell_type" : " code" ,
118
+ "metadata" : {
119
+ "id" : " ILVHpcNjiPOK" ,
120
+ "colab_type" : " code" ,
121
+ "colab" : {}
122
+ },
123
+ "source" : [
124
+ " "
125
+ ],
126
+ "execution_count" : 0 ,
127
+ "outputs" : []
128
+ },
129
+ {
130
+ "cell_type" : " code" ,
131
+ "metadata" : {
132
+ "id" : " yYXB7JSuh_IS" ,
133
+ "colab_type" : " code" ,
134
+ "colab" : {}
135
+ },
136
+ "source" : [
137
+ " "
138
+ ],
139
+ "execution_count" : 0 ,
140
+ "outputs" : []
141
+ },
142
+ {
143
+ "cell_type" : " code" ,
144
+ "metadata" : {
145
+ "id" : " ODyFVnq0cN2h" ,
146
+ "colab_type" : " code" ,
147
+ "colab" : {}
148
+ },
149
+ "source" : [
150
+ " class Net(nn.Module):\n " ,
151
+ " def __init__(self,input_size, hidden_size, out_size):\n " ,
152
+ " super(Net,self).__init__()\n " ,
153
+ " self.fc1=nn.Linear(input_size,hidden_size)\n " ,
154
+ " self.relu=nn.ReLU()\n " ,
155
+ " self.fc2=nn.Linear(hidden_size,hidden_size)\n " ,
156
+ " self.fc3=nn.Linear(hidden_size,out_size)\n " ,
157
+ " \n " ,
158
+ " def forward(self,x):\n " ,
159
+ " out=self.fc1(x)\n " ,
160
+ " out=self.relu(out)\n " ,
161
+ " out=self.fc2(out)\n " ,
162
+ " out=self.relu(out)\n " ,
163
+ " out=self.fc3(out)\n " ,
164
+ " return out\n " ,
165
+ " "
166
+ ],
167
+ "execution_count" : 0 ,
168
+ "outputs" : []
169
+ },
170
+ {
171
+ "cell_type" : " code" ,
172
+ "metadata" : {
173
+ "id" : " wSqc6PQxcYPi" ,
174
+ "colab_type" : " code" ,
175
+ "colab" : {}
176
+ },
177
+ "source" : [
178
+ " net=Net(input_size,hidden_size,out_size)\n " ,
179
+ " CUDA=torch.cuda.is_available()\n " ,
180
+ " if CUDA:\n " ,
181
+ " net=net.cuda()\n " ,
182
+ " criterion=nn.CrossEntropyLoss()\n " ,
183
+ " optimizer=torch.optim.Adam(net.parameters(),lr=learning_rate) "
184
+ ],
185
+ "execution_count" : 0 ,
186
+ "outputs" : []
187
+ },
188
+ {
189
+ "cell_type" : " code" ,
190
+ "metadata" : {
191
+ "id" : " f4_OC2UWkSi6" ,
192
+ "colab_type" : " code" ,
193
+ "colab" : {
194
+ "base_uri" : " https://localhost:8080/" ,
195
+ "height" : 1000
196
+ },
197
+ "outputId" : " a0fcb668-7701-426d-d8cc-e6072aaf181e"
198
+ },
199
+ "source" : [
200
+ " correct_train=0\n " ,
201
+ " total_train=0\n " ,
202
+ " for epoch in range(epochs):\n " ,
203
+ " for i,(images,labels) in enumerate(train_loader):\n " ,
204
+ " images=Variable(images.view(-1,28*28))\n " ,
205
+ " labels=Variable(labels)\n " ,
206
+ " if CUDA:\n " ,
207
+ " images=images.cuda()\n " ,
208
+ " labels=labels.cuda()\n " ,
209
+ " optimizer.zero_grad()\n " ,
210
+ " outputs=net(images)\n " ,
211
+ " _,predicted=torch.max(outputs.data,1)\n " ,
212
+ " total_train+=labels.size(0)\n " ,
213
+ " if CUDA:\n " ,
214
+ " correct_train+=(predicted.cpu()==labels.cpu()).sum()\n " ,
215
+ " else:\n " ,
216
+ " correct_train+=(predicted==labels).sum()\n " ,
217
+ " loss=criterion(outputs,labels)\n " ,
218
+ " loss.backward()\n " ,
219
+ " optimizer.step()\n " ,
220
+ " if(i+1)%100==0:\n " ,
221
+ " print(\" Training Accuracy: {}%\" .format((100*correct_train/total_train)))\n " ,
222
+ " print(\" Done Training\" ) \n " ,
223
+ " "
224
+ ],
225
+ "execution_count" : 47 ,
226
+ "outputs" : [
227
+ {
228
+ "output_type" : " stream" ,
229
+ "text" : [
230
+ " Training Accuracy: 98%\n " ,
231
+ " Training Accuracy: 98%\n " ,
232
+ " Training Accuracy: 98%\n " ,
233
+ " Training Accuracy: 98%\n " ,
234
+ " Training Accuracy: 98%\n " ,
235
+ " Training Accuracy: 98%\n " ,
236
+ " Training Accuracy: 98%\n " ,
237
+ " Training Accuracy: 98%\n " ,
238
+ " Training Accuracy: 98%\n " ,
239
+ " Training Accuracy: 98%\n " ,
240
+ " Training Accuracy: 98%\n " ,
241
+ " Training Accuracy: 98%\n " ,
242
+ " Training Accuracy: 98%\n " ,
243
+ " Training Accuracy: 98%\n " ,
244
+ " Training Accuracy: 98%\n " ,
245
+ " Training Accuracy: 98%\n " ,
246
+ " Training Accuracy: 98%\n " ,
247
+ " Training Accuracy: 98%\n " ,
248
+ " Training Accuracy: 98%\n " ,
249
+ " Training Accuracy: 98%\n " ,
250
+ " Training Accuracy: 98%\n " ,
251
+ " Training Accuracy: 98%\n " ,
252
+ " Training Accuracy: 99%\n " ,
253
+ " Training Accuracy: 99%\n " ,
254
+ " Training Accuracy: 99%\n " ,
255
+ " Training Accuracy: 99%\n " ,
256
+ " Training Accuracy: 99%\n " ,
257
+ " Training Accuracy: 99%\n " ,
258
+ " Training Accuracy: 99%\n " ,
259
+ " Training Accuracy: 99%\n " ,
260
+ " Training Accuracy: 99%\n " ,
261
+ " Training Accuracy: 99%\n " ,
262
+ " Training Accuracy: 99%\n " ,
263
+ " Training Accuracy: 99%\n " ,
264
+ " Training Accuracy: 99%\n " ,
265
+ " Training Accuracy: 99%\n " ,
266
+ " Training Accuracy: 99%\n " ,
267
+ " Training Accuracy: 99%\n " ,
268
+ " Training Accuracy: 99%\n " ,
269
+ " Training Accuracy: 99%\n " ,
270
+ " Training Accuracy: 99%\n " ,
271
+ " Training Accuracy: 99%\n " ,
272
+ " Training Accuracy: 99%\n " ,
273
+ " Training Accuracy: 99%\n " ,
274
+ " Training Accuracy: 99%\n " ,
275
+ " Training Accuracy: 99%\n " ,
276
+ " Training Accuracy: 99%\n " ,
277
+ " Training Accuracy: 99%\n " ,
278
+ " Training Accuracy: 99%\n " ,
279
+ " Training Accuracy: 99%\n " ,
280
+ " Training Accuracy: 99%\n " ,
281
+ " Training Accuracy: 99%\n " ,
282
+ " Training Accuracy: 99%\n " ,
283
+ " Training Accuracy: 99%\n " ,
284
+ " Training Accuracy: 99%\n " ,
285
+ " Training Accuracy: 99%\n " ,
286
+ " Training Accuracy: 99%\n " ,
287
+ " Training Accuracy: 99%\n " ,
288
+ " Training Accuracy: 99%\n " ,
289
+ " Training Accuracy: 99%\n " ,
290
+ " Done Training\n "
291
+ ],
292
+ "name" : " stdout"
293
+ }
294
+ ]
295
+ },
296
+ {
297
+ "cell_type" : " code" ,
298
+ "metadata" : {
299
+ "id" : " 7x5x7H0DpCCj" ,
300
+ "colab_type" : " code" ,
301
+ "colab" : {
302
+ "base_uri" : " https://localhost:8080/" ,
303
+ "height" : 34
304
+ },
305
+ "outputId" : " 1406b8b5-9649-45b5-fed2-eca4363940be"
306
+ },
307
+ "source" : [
308
+ " correct=0\n " ,
309
+ " total=0\n " ,
310
+ " \n " ,
311
+ " for i,(images,labels) in enumerate(test_loader):\n " ,
312
+ " images=Variable(images.view(-1,28*28))\n " ,
313
+ " \n " ,
314
+ " if CUDA:\n " ,
315
+ " images=images.cuda()\n " ,
316
+ " \n " ,
317
+ " \n " ,
318
+ " outputs=net(images)\n " ,
319
+ " _,predicted=torch.max(outputs.data,1)\n " ,
320
+ " total+=labels.size(0)\n " ,
321
+ " if CUDA:\n " ,
322
+ " correct+=(predicted.cpu()==labels.cpu()).sum()\n " ,
323
+ " else:\n " ,
324
+ " correct+=(predicted==labels).sum()\n " ,
325
+ " print(\" Final test accuracy %d%%\" %(100*correct/total)) \n " ,
326
+ " "
327
+ ],
328
+ "execution_count" : 50 ,
329
+ "outputs" : [
330
+ {
331
+ "output_type" : " stream" ,
332
+ "text" : [
333
+ " Final test accuracy 98%\n "
334
+ ],
335
+ "name" : " stdout"
336
+ }
337
+ ]
338
+ },
339
+ {
340
+ "cell_type" : " code" ,
341
+ "metadata" : {
342
+ "id" : " xsbMC7DnnpDI" ,
343
+ "colab_type" : " code" ,
344
+ "colab" : {}
345
+ },
346
+ "source" : [
347
+ " "
348
+ ],
349
+ "execution_count" : 0 ,
350
+ "outputs" : []
351
+ }
352
+ ]
353
+ }
0 commit comments