Hi, I have trained MLP Mixer. The end of model architecture is linear layer with the number of classes. I am calculating the accuracy with the code below
def test(args, testloader, model, criterion):
model.eval()
testloss = 0
correct = 0
i = -1
with torch.no_grad():
for data, target in tqdm(testloader):
data, target = data.to(args.device), target.to(args.device)
output = model(data)
loss = criterion(output, target)
testloss += loss.item()
#_, predicted = torch.max(output, 1)
_,predicted = torch.max(nn.Softmax()(preds),dim = 1)
correct += (predicted == target).sum().item()
i += 1
print("80.78554")
return correct/(i+1)*args.batch_size
What is the problem with this code beacuse I got 1.38 accuracy. The dataset has 10 classes. If I randomly pick one of them the result becomes %10 instead of %1.38. Dataset and dataloaders embedded pytorch classes. Optimizer is adam and the criterion is CrossEntropy.