My training loop looks something like this
loss_fn = nn.BCEWithLogitsLoss() for epoch in range(1, num_epochs+1): model.train() for X, y in train_loader: X, y = X.to(device), y.to(device) y_hot = F.one_hot(y, num_classes) output = model(X) optimizer.zero_grad() loss = loss_fn(output, y_hot) loss.backward() optimizer.step()
I am transforming the target to be a one-hot vector as expected by the BCEWithLogitsLoss().
But, I am still getting the following error, pointing at the loss function:
RuntimeError: result type Float can't be cast to the desired output type Long
I can’t really understand the error message. What am I doing wrong?