Premier projet avec pytorch et je me suis coincé en essayant de convertir un label MNIST 'int' dans une torche 'Variable'. Le débogueur dit qu'il n'a pas de dimension ?!Convertir 'int' en pytorch 'Variable' fait des problèmes
# numpy mnist data
X_train, Y_train = read_data("training")
X_test , Y_test = read_data("testing")
arr = np.zeros(5)
for i in range(5):
# in your training loop:
costs_ = 0
for k in range(10000):
optimizer.zero_grad() # zero the gradient buffers
a = torch.from_numpy(np.expand_dims(X_train[k].flatten(), axis=0)).float()
b = torch.from_numpy(np.array(Y_train[k], dtype=np.float)).float()
input = Variable(a)
output = net(input)
target = Variable(b) # PROBLEM!!
loss = criterion(output, target)
loss.backward()
optimizer.step() # Does the update
costs_ += loss.data.numpy()
arr[i] = costs_
print(i)
erreur de jet est: « RuntimeError: entrée et la cible ont un nombre différent d'éléments: entrée [1 x 1] qui possède 1 éléments, alors que la cible [] a 0 éléments à/b/roue/pytorch-src/torch/lib/THNN/generic/MSECriterion.c: 12 "
Non, ce n'est pas vide. Quand je fais "print (Y_train [k])" je vois le "5" dans le terminal ... –
J'ai édité la réponse. Cela devrait certainement l'être. Aussi je vous demanderais d'éditer votre question avec les informations suivantes pour les futurs lecteurs: la dimension des entrées 'X_train',' Y_train', 'X_test' et' Y_test', et la dimension de 'output'. – entrophy