Ich versuche, eine Warteschlange in Tensorflow aus einer Liste von Dateinamen zu machen. Die Liste wurde erstellt, aber es scheint, dass der String-Input-Producer eine leere Warteschlange zurückgegeben hat. Es kann andere Gründe geben, dass der Code nicht funktioniert. Unten ist der Code:tensorflow string_input_producer gibt leere Warteschlange
sess = tf.InteractiveSession()
def read_my_file_format(filename_queue):
reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)
images = tf.image.decode_jpeg(value, channels=3)
return images, key
def input_pipeline(filenames, batch_size, num_epochs, labels):
filename_queue = tf.train.string_input_producer(filenames, num_epochs=num_epochs, shuffle=False)
image, key = read_my_file_format(filename_queue)
return image, key
sess.run(tf.global_variables_initializer())
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess = sess, coord = coord, start=True)
input_pipeline(trainnames, batch_size, None, labels)
coord.request_stop()
coord.join(threads)
Können Sie mir bitte auch sagen, wie die Pipeline mit der Grafik zu kombinieren? Ich habe gelernt, dass wir einem Platzhalter des Graphen keine Tensoren zuführen können, in diesem Fall wie soll ich dem Graphen Input geben? Ich habe einen Zugverband und einen Testsatz in zwei verschiedenen Warteschlangen. Ist es möglich, beide in einen Graphen einzugeben? Wenn ich einen Graphen als Funktion definiere, erstellt er jedes Mal, wenn ich ihn aufruft, einen neuen Graphen oder gibt er denselben alten Graphen zurück? – ALeex
Nun, im Grunde ist die Pipeline (z. B. 'filename_queue',' image', 'key', ...) Teil des Graphen. Wenn Sie Platzhaltertensoren nicht manuell mit einem feed_dict einspeisen möchten, können Sie den Bildtensor verwenden, um direkt in den Graphen zu gelangen. Im Grunde verwenden Sie einfach Ihre Dequeue-Op, wie Sie Ihren Platzhalter verwendet hätten. Ich würde empfehlen, lesen [die reading_data Abschnitt] (https://www.tensorflow.org/programmers_guide/reading_data) und werfen Sie einen Blick auf die Beispiele. In Bezug auf Ihre letzten Fragen könnte dieser [Abschnitt] (https://www.tensorflow.org/programmers_guide/variables) von Interesse sein. – npf
Danke, dass du mir geholfen hast. Ich habe gelesen, dass ich vor dem Öffnen der Frage immer noch nicht sicher bin, was ich tun soll, nachdem ich es gelesen habe. Also füge ich Dateiname_Queue, Bild und Schlüssel in das Diagramm ein. Ich nehme an, dass das Ausführen von 'sess.run ([image, key])' beginnt, aus der Warteschlange herauszutreten und das Diagramm zu durchlaufen? Oder ist es nur zum Erhalten der Bildtensoren ohne Training? Um Pipelineteil des Diagramms zu machen, habe ich es nicht gefunden, wie man beide Pipelines des Trainingssatzes und des Testsets gibt, wissen Sie darüber? – ALeex