DigitClassifier / neural_network.py
hkanumilli's picture
updating with final model
dcb34da
raw
history blame
1.34 kB
import torch
import torch.nn as nn
import torch.nn.functional as F
# class MNISTNetwork(nn.Module):
# # achieved 97 percent accuracy
# def __init__(self):
# super().__init__()
# self.layer1 = nn.Linear(784, 400)
# self.layer2 = nn.Linear(400, 256)
# self.layer3 = nn.Linear(256, 64)
# self.layer4 = nn.Linear(64, 32)
# self.layer5 = nn.Linear(32, 10)
# def forward(self, x):
# x = x.view(-1, 28*28)
# x = torch.relu(self.layer1(x))
# x = torch.relu(self.layer2(x))
# x = torch.relu(self.layer3(x))
# x = torch.relu(self.layer4(x))
# x = torch.relu(self.layer5(x))
# return F.log_softmax(x, dim=1)
class MNISTNetwork(nn.Module):
# achieved 98.783 percent accuracy
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(1, 32, kernel_size=3, padding=1)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, padding=1)
self.fc1 = nn.Linear(64*7*7, 128)
self.fc2 = nn.Linear(128, 10)
def forward(self, x):
x = F.relu(self.conv1(x))
x = F.max_pool2d(x, 2)
x = F.relu(self.conv2(x))
x = F.max_pool2d(x, 2)
x = x.view(-1, 64*7*7)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return F.log_softmax(x, dim=1)