Hi there!
I am trying to training  this simple model

class Classifier(nn.Module):
def init(self):
super().init()
self.fc1 = nn.Linear(784, 256)
self.fc2 = nn.Linear(256, 128)
self.fc3 = nn.Linear(128, 64)
self.out = nn.Linear(64, 10)
self.dropout = nn.Dropout(0.2)

def forward(self, t):
    t = t.view(t.shape[0], -1) # Flattern features
    t = self.dropout(F.relu(self.fc1(t)))
    t = self.dropout(F.relu(self.fc2(t)))
    t = self.dropout(F.relu(self.fc3(t)))
    t = self.out(t)
    
    return t

In Fashion dataset. Here is my code for training:

model = Classifier()
criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr =.003)
epochs = 30
validation_losses = []
validation_accuracies = []
training_loss = []
training_accuracies = []
for e in range(epochs):
train_loss = .0
train_acc = .0
model.train()
for images, labels in trainloader:
    out = model(images)
    loss = criterion(out, labels)

    # Acc training
    _, pred = torch.max(out, dim = 1)
    equals = pred == labels
    train_acc += torch.mean(equals.type(torch.FloatTensor)).item()

    # Loss training
    train_loss += criterion(out, labels).item()
    
    # Update weights
    loss.backward()
    optimizer.step()

else:
    test_acc = .0
    test_loss = .0
    with torch.no_grad():
        model.eval()
        for images, labels in testloader:
            out = model(images)
            loss = criterion(out, labels)

            # Acc training
            _, pred = torch.max(out, dim = 1)
            equals = pred == labels
            test_acc += torch.mean(equals.type(torch.FloatTensor)).item()

            # Loss training
            test_loss += criterion(out, labels).item()
            
train_losses.append(train_loss/len(trainloader))
training_accuracies.append(train_acc/len(trainloader))
validation_losses.append(test_loss/len(testloader))
validation_accuracies.append(test_acc/len(testloader))
        
print("Epoch: {}/{}".format(e+1, epochs),
     "Training accuracy: {:.3f}".format(train_acc/len(trainloader)),
     "Training loss: {:.3f}".format(train_loss/len(trainloader)),
     "Test accuracy: {:.3f}".format(test_acc/len(testloader)),
     "Test loss: {:.3f}".format(test_loss/len(testloader)))


And this are my logs:

Epoch: 1/30 Training accuracy: 0.127 Training loss: 2.442 Test accuracy: 0.100 Test loss: 2.346
Epoch: 2/30 Training accuracy: 0.099 Training loss: 311.148 Test accuracy: 0.100 Test loss: 2.404
Epoch: 3/30 Training accuracy: 0.101 Training loss: 320.982 Test accuracy: 0.100 Test loss: 2.386
Epoch: 4/30 Training accuracy: 0.100 Training loss: 1291.109 Test accuracy: 0.100 Test loss: 2.457
Epoch: 5/30 Training accuracy: 0.098 Training loss: 2.422 Test accuracy: 0.100 Test loss: 2.446
Epoch: 6/30 Training accuracy: 0.100 Training loss: 15.440 Test accuracy: 0.100 Test loss: 2.429
Epoch: 7/30 Training accuracy: 0.099 Training loss: 2.459 Test accuracy: 0.100 Test loss: 2.455

I am starting with pytorch coding so i am sure something must be wrong, look the score.
Could you help me?
Ty!