Skip to content

Commit b04fd39

Browse files
committed
Created using Colaboratory
1 parent 0de127c commit b04fd39

File tree

1 file changed

+353
-0
lines changed

1 file changed

+353
-0
lines changed

MNIST.ipynb

+353
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,353 @@
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

Comments
 (0)