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