Using transfer learning for a multi-label image classification task (changed the classifier layer of resnet50).
I have changed the fully connected layer of resnet50 as follows :
model = models.resnet50(pretrained=True)
n_inputs = model.fc.in_features
model.fc = nn.Sequential(
                      nn.Linear(n_inputs, 256), 
                      nn.ReLU(), 
                      nn.Dropout(0.4),
                      nn.Linear(256, n_classes),                   
                      nn.LogSoftmax(dim=1))
model = model.to(device)

def fit(n_epochs):
  for epoch in range(n_epochs):

      running_loss = 0.0
      for i, (inputs,labels) in enumerate(Bar(train_loader)):
          inputs, labels = inputs.to(device), labels.to(device)
          optimizer.zero_grad()

          outputs = model(inputs)
          loss = criterion(outputs, labels)
          loss.backward()
          optimizer.step()

          running_loss += loss.item()
      print("Finished epoch {}; running_loss =", running_loss)

  print('Finished Training' )

fit(1)

4794/4794: [===============================>] - ETA 0.1s
Finished epoch {}; running_loss = 1571.782483279705
Finished Training

fit(1)

4794/4794: [===============================>] - ETA 0.1s
Finished epoch {}; running_loss = 1571.5039553046227
Finished Training

My loss functions and optimizers are
criterion = nn.NLLLoss()
optimizer = optim.Adam(model.parameters(), lr=0.00001)

After each epoch, my model is not getting any better. Is there any mistake in my training loop