web-dev-qa-db-de.com

Tensorflow-Fehler bei Verwendung meiner eigenen Daten

Ich habe mit der Tensorflow-Bibliothek gespielt und die Tutorials gemacht. Jetzt wollte ich mit meinen eigenen Daten spielen, aber ich versage schrecklich. Dies ist vielleicht eine Noob-Frage, aber ich kann es nicht verstehen.

Ich verwende dieses Beispiel: https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3%20-%20Neural%20Networks/convolutional_network.py

Ich möchte meine eigenen Bilder verwenden, um meine Bilder für die Verwendung mit Tensorflow zu konvertieren. Ich verwende Folgendes: https://github.com/HamedMP/ImageFlow/blob/master/ImageFlow.py

Nun ändere ich die Parameter im Beispiel hieraus:

 n_input = 784
 n_classes = 10

zu diesem:

 n_input = 9216
 n_classes = 2

Ich habe das gemacht, weil meine Bilder 96 * 96 sind und es nur 2 Klassen meiner Bilder gibt

Ich ändere auch die Gewichte und Vorurteile auf die Zahlen, die ich brauche.

Ich habe die Daten so gelesen:

batch_xs = imgReader.read_images(pathname);

imgReader ist die ImageFlow-Datei

aber wenn ich versuche, es auszuführen, erhalte ich einen Fehler:

 ValueError: Cannot feed value of shape (104, 96, 96, 1) for Tensor
 u'Placeholder:0', which has shape (Dimension(None), Dimension(9216))

Ich habe das Gefühl, ich übersehe etwas Kleines, sehe es aber nicht.

12

Dieser Fehler tritt auf, weil die Form der zu versuchenden Daten (104 x 96 x 96 x 1) nicht der Form des Eingabeplatzhalters entspricht (batch_size x 9216, wobei batch_size variabel sein kann).

Damit es funktioniert, fügen Sie die folgende Zeile hinzu, bevor Sie einen Trainingsschritt ausführen:

batch_xs = np.reshape(batch_xs, (-1, 9216))

Dies verwendet numpy, um die eingelesenen Bilder, die 4-D-Arrays von batch_size x h x w x -Kanälen sind, in eine batch_size x 9216-Elementmatrix umzuwandeln, wie vom Platzhalter erwartet.

17
mrry

Ich habe dieses Problem durch ein Upgrade des Tensorflows durch das Rohr gelöst.

0
bobo32