ich Tensorflow bin mit einem CNN zu machen, die Bilder klassifizieren. Ich habe eine images.txt
-Datei, die eine Liste der .jpg
Dateien zusammen mit ihren entsprechenden Etiketten enthält, mit folgendem Format:Lesen von Bilddaten eine TXT-Datei mit Dateinamen enthalten
image1.jpg,4
image2.jpg,3
image3.jpg,2
ich eine Funktion geschrieben haben, der die .txt
Datei öffnet und iterativ die Daten der Bilder lesen mit Kissen:
data = []
labels = []
def preprocess():
with open('images.txt') as f:
for line in f:
// Did some string processing to get path of the image
img = Image.open(path)
arr = np.array(img.getdata(), dtype=np.int8)
data.append(arr)
ich bin nicht sicher, ob die natürlichen Geschwindigkeit dieses Verfahrens, aber es scheint ziemlich langsam. Ich muss ungefähr 5000 Bilder lesen (d. H. images.txt
enthält ungefähr 5000 Zeilen), und es dauert ungefähr 60 Sekunden, um diese Funktion zu beenden.
Könnte vielleicht jemand etwas Licht in diese und lassen Sie mich wissen, was seine Leistung zu tun zu verbessern? Vielen Dank.
Danke, aber wenn ich die Genauigkeit bin Überprüfung von meinen Vorhersagen, diese Zeile '' 'train_accuracy = Genauigkeit.eval (feed_dict = {x: Stapel [0], y_: Stapel [1], keep_prob: 1.0})' '' erzeugt einen Fehler: '' 'TypeError: The Der Wert eines Feeds darf kein tf.Tensor-Objekt sein. Zu den zulässigen Feed-Werten gehören Python-Skalare, Strings, Listen, numpy ndarrays oder TensorHandles. '' 'Wie löse ich das? – ccying
Sie müssen es nicht als Werte für Platzhalter verwenden. Sie sind bereits Teil der Grafik, daher müssen Sie nichts füttern. Lesen Sie diese Anleitung zum besseren Verständnis: https://www.tensorflow.org/api_guides/python/reading_data – nessuno