Lorsque j'ai installé la dernière version de pytorch avec le code source, j'ai eu l'erreur :
UserWarning : index invalide d'un tenseur 0-dim. Ce sera une erreur dans PyTorch 0.5. Utilisez tensor.item() pour convertir un tenseur 0-dim en un nombre Python
train_loss += loss.data[0]
Traceback (dernier appel le plus récent) : 10/2984 Pas : 61 ms | Total : 2s170ms | Perte : Fichier "testgn.py", ligne 267, dans
train (époque)
Fichier "testgn.py", ligne 199, dans le train
% (train_loss/(batch_idx+1), 100.*correct/total, correct, total))
RuntimeError : la valeur ne peut pas être convertie en type uint8_t sans débordement : 264
Au fait, le code fonctionne bien sur le pytorch installé par conda.
Je pense que vous devez résoudre le problème du type de correction, je pense que le type de correction que vous obtenez est 'byteTensor'.
Je suis désolé d'entendre cela, j'ai déjà eu ce problème, j'espère que mon idée pourra vous aider.
Vous devrez peut-être remplacer loss.data[0]
par loss.item()
comme indiqué dans le message d'erreur.
Oui, c'est un effet secondaire de la fusion Variable/Tensor. Suivez le message d'erreur (ou convertissez-le explicitement en flottant avec float(loss)
/home/kerax/usys/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:31 : UserWarning : index invalide d'un tenseur 0-dim. Ce sera une erreur dans PyTorch 0.5. Utilisez tensor.item() pour convertir un tenseur 0-dim en un nombre Python
/home/kerax/usys/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:32 : UserWarning : index invalide d'un tenseur 0-dim. Ce sera une erreur dans PyTorch 0.5. Utilisez tensor.item() pour convertir un tenseur 0-dim en un nombre Python
Itère : 0, D : 1,351, G : 0,6499
J'ai eu la même erreur mais je l'ai corrigée avec loss.item() comme [vishwakftw] mentionné ci-dessus. Merci
Merci pour [vishwakftw], c'est le problème de la version de pytorch
Je reçois cette erreur, est-ce que quelqu'un sait comment le résoudre, merci d'avance!
IndexError Traceback (appel le plus récent en dernier)
21 save_file_name = 'jigsaw_cifar100_e{}_s{}.pk'.format(n_epochs, sinkhorn_iter)
22 history = train_model(modèle, critère, optimiseur, train_loader, validation_loader,
---> 23 n_epochs=n_epochs, save_file_name=save_file_name)
24
38 optimiseur.zero_grad()
39 sorties = modèle(x_in)
---> 40 n_correct_pred += compute_acc(vecmat2perm2x2(outputs), perms, False).data[0]
41 perte = critère(sorties, y_in)
42 perte. arrière ()
IndexError : index invalide d'un tenseur 0-dim. Utilisez tensor.item() pour convertir un tenseur 0-dim en un nombre Python
Je reçois cette erreur, est-ce que quelqu'un sait comment le résoudre, merci d'avance!
IndexError Traceback (appel le plus récent en dernier)
21 save_file_name = 'jigsaw_cifar100_e{}_s{}.pk'.format(n_epochs, sinkhorn_iter)
22 history = train_model(modèle, critère, optimiseur, train_loader, validation_loader,
---> 23 n_epochs=n_epochs, save_file_name=save_file_name)
24
38 optimiseur.zero_grad()
39 sorties = modèle(x_in)
---> 40 n_correct_pred += compute_acc(vecmat2perm2x2(outputs), perms, False).data[0]
41 perte = critère(sorties, y_in)
42 perte. arrière ()
IndexError : index invalide d'un tenseur 0-dim. Utilisez tensor.item() pour convertir un tenseur 0-dim en un nombre Python
Suivez les instructions du message d'erreur
Commentaire le plus utile
Vous devrez peut-être remplacer
loss.data[0]
parloss.item()
comme indiqué dans le message d'erreur.