class Fashion_MNIST_NeuralNet(nn.Module) :
def init(self) :
#Calling the module class for the reason mentioned above...
super(Fashion_MNIST_NeuralNet,self).__init__()
self.fMnistConv1 = nn.Conv2d(in_channels = 1 , out_channels = 6 , kernel_size = 5)
self.fMnistConv2 = nn.Conv2d(in_channels = 6 , out_channels = 12 , kernel_size = 5)
#adding fully connected layers
self.fMnist_fc1 = nn.Linear(12*4*4 , 120)
self.fMnist_fc2 = nn.Linear(120 , 84)
self.fMnist_fc3 = nn.Linear(84 , 10)
def forward(self,x) :
#appplying max_pool2d layer to reduce the dimensionality of the matrix obtained from convolutions…
# Max pooling over a (2, 2) window
print(‘Forward pass’)
x = F.max_pool2d(F.relu(self.fMnistConv1(x)), (2, 2))
# If the size is a square you can only specify a single number
x = F.max_pool2d(F.relu(self.fMnistConv2(x)), 2)
print("===x===1" , x.shape)
x = x.view(-1 , self.get_num_features(x))
print("==View==" , x.size())
x = F.relu(self.fMnist_fc1(x))
x = F.relu(self.fMnist_fc2(x))
x = self.fMnist_fc3(x)
return x
def get_num_features(self ,x):
print(‘Number of Features found=====’ , x.shape)
size = x.size()[1:]
print(“Size” , size)
num_features = 1
for s in size:
num_features*=s
print("==Mult==" , num_features)
return num_features
fn = Fashion_MNIST_NeuralNet()
Im getting an Error in this snippet
import torch.nn as nn
def fit_model(model , train_loader):
#Train Loader is used from the DataLoader done earlier…
optimizer = torch.optim.Adam(model.parameters())
‘’’
Parameters :-
conv1.weight torch.Size([6, 1, 5, 5])
conv1.bias torch.Size([6])
conv2.weight torch.Size([12, 6, 5, 5])
conv2.bias torch.Size([12])
fc1.weight torch.Size([120, 192])
fc1.bias torch.Size([120])
fc2.weight torch.Size([84, 120])
fc2.bias torch.Size([84])
fc3.weight torch.Size([10, 84])
fc3.bias torch.Size([10])
‘’’
error = nn.CrossEntropyLoss()
EPOCHS = 5
model.train()
for epoch in range(EPOCHS):
print(epoch)
for idx , (image , label) in enumerate(train_loader):
var_X_batch = torch.randn(image.shape)
print(var_X_batch.shape)
var_y_batch = torch.tensor(label)
optimizer.zero_grad()
#passing the batch of images to the FNet_MNIST
print('Debug 1')
output = model(var_X_batch)
print('Debug 2')
loss = error(output, var_y_batch)
print('Debug 2')
loss.backward()
#backpropagation....
#Step gradient function....
optimizer.step()
predicted = torch.max(output.data, 1)[1]
correct += (predicted == var_y_batch).sum()
#print(correct)
if idx % 50 == 0:
print('Epoch : {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}\t Accuracy:{:.3f}%'.
format(
epoch, idx*len(X_batch), len(train_loader.dataset), 100.*idx / len(train_loader), loss.data[0], float(correct*100) / float(BATCH_SIZE*(idx+1))))
Error : NotImplementedError: