Tensorflow-Warteschlangen und CPU <-> GPU-Transfer verstehen

Nach dem Lesen dieser Github-Ausgabe habe ich das Gefühl, dass mir etwas in meinem Verständnis für Warteschlangen fehlt:

https: //github.com/tensorflow/tensorflow/issues/300

Ich dachte, dass beim Laden von Daten in eine Warteschlange diese vorab an die GPU übertragen werden, während der letzte Stapel berechnet wird, sodass praktisch kein Bandbreitenengpass auftritt, vorausgesetzt, die Berechnung dauert länger als die Zeit zum Laden des nächsten Stapels.

Aber der obige Link deutet darauf hin, dass es eine teure Kopie aus der Warteschlange in den Graphen gibt (numpy <-> TF) und dass es schneller wäre, die Dateien in den Graphen zu laden und stattdessen dort eine Vorverarbeitung durchzuführen. Aber das ergibt für mich keinen Sinn. Warum ist es wichtig, wenn ich ein 256x256-Bild aus einer Datei lade, während es sich um ein unformatiertes Numpy-Array handelt? Wenn überhaupt, würde ich denken, dass die numpy Version schneller ist. Was vermisse ich

Antworten auf die Frage(4)

Ihre Antwort auf die Frage