How to fix RuntimeError "Expected object of scalar type Float but got scalar type Double for argument"?
Reference is from this github issue.
When the error is RuntimeError: Expected object of scalar type Float but got scalar type Double for argument #4 'mat1'
, you would need to use the .float()
function since it says Expected object of scalar type Float
.
Therefore, the solution is changing y_pred = model(X_trainTensor)
to y_pred = model(X_trainTensor.float())
.
Likewise, when you get another error for loss = loss_fn(y_pred, y_trainTensor)
, you need y_trainTensor.long()
since the error message says Expected object of scalar type Long
.
You could also do model.double()
, as suggested by @Paddy
.
I had same issue
resolved
Before converting to Tensor, try this
X_train = X_train.astype(np.float32)
The issue can be fixed by setting the datatype of input to Double i.e torch.float32
I hope the issue came because your datatype is torch.float16