[PyTorch] Erreur d'exécution: objet attendu de type scalaire Float mais obtenu de type scalaire Double pour l'argument # 4'mat1 '

Erreur dans PyTorch

Je vais le laisser à ceux qui sont coincés au même endroit. Lors de l'utilisation de PyTorch, j'ai eu l'erreur suivante.

RuntimeError: Expected object of scalar type Float but got scalar type Double for argument #4 'mat1'

À la suite de diverses recherches, il semble que le problème soit que lors de la conversion au type Tensor, le nombre dans le tenseur devient de type torche double. (Il existe de nombreuses méthodes dans la classe PyTorch qui sont basées sur le type ** torch.float **)

Alors

Avant correction

X_train = torch.from_numpy(X_train)
y_train = torch.from_numpy(y_train)
X_test = torch.from_numpy(X_test)
y_test = torch.from_numpy(y_test)

modifié

X_train = torch.from_numpy(X_train).float()
y_train = torch.from_numpy(y_train).long()
X_test = torch.from_numpy(X_test).float()
y_test = torch.from_numpy(y_test).long() 

Il semble que vous devriez le convertir avec .float () ou .long () comme ceci. (.long () est une conversion en étiquette)

Les références: 2nd PyTorch Tensol & Data Type Cheet Sheet

Recommended Posts

[PyTorch] Erreur d'exécution: objet attendu de type scalaire Float mais obtenu de type scalaire Double pour l'argument # 4'mat1 '
Note de prise en charge des erreurs Python: "... ne prend pas en charge l'argument 0 de type float ..."