I implemented a code and I am trying to compute torch.nn.functional.cross_entropy but unfortunately, I receive the RuntimeError: only batches of spatial targets supported (3D tensors) but got targets of size: : [256] error!
cuda = torch.cuda.is_available()
for data, target in test_dataloader:
#move to GPU if available
if cuda:
data, target = data.to('cuda'), target.to('cuda')
#compute model output
param_dict = initialize_nn(param_dict)
pred = my_nn(data, param_dict)
prediction = torch.argmax(pred, axis=1)
#comptue accuracy for minibatch
train_acc = torch.sum(prediction == target)
print("Precision is:")
print(train_acc / len(prediction))
#compute loss for minibatch
print()
loss = torch.nn.functional.cross_entropy(data, target)
loss.backward()
print(loss)