2016-04-30 7 views
1

Nach meinem MNIST Klassifikation Netzwerk trainiert, ich wollte auf den Testdaten zu „vorhersagen“ und bekam die folgende Fehlermeldung in Bezug auf die Form des TesteingangsTensorFlow: Shape Fehler

testimages = np.array(test) 
print(testimages.shape) 
> (28000, 784) 
feed_dict = {x: [testimages]} 
classification = sess.run(y, feed_dict) 

Valueerror: Wert kann nicht von Form füttern (1 , 28000, 784) für Tensor u'Placeholder_2: 0 ', die Form hat (Dimension (keine), Dimension (784))

Also wie kann es sein, dass die Form ist (28000, 784) (was es sollte be) aber wenn man in das trainierte Netzwerk einspeist, erscheint es als (1, 28000, 784)?

By the way, für die Ausbildung einbezogen ich die Trainingsdaten über

trainlabels = np.array(train["label"]) 
trainimages = np.array(train.iloc[:, 1:]) 

weil die Trainingsdaten unter Angabe der Bezeichnung eine erste Kolonne hatte. Ich benutze Pandas für den Import.

Antwort

1

Schnell Antwort: Wechsel von feed_dict = {x: [testimages]} zu feed_dict = {'x': testimages}

In Ihrer Eingabe übergeben Sie feed_dict, die ein Wörterbuch ist. nicht sicher, ob das in Ordnung ist. Auch der Eintrag innerhalb, den Sie mit x beschriften, hat das Format [testimages]. Also, wenn testimages.shape = (28000, 784), wickeln Sie es herum mit einem Array wäre es (1, 28000, 784).