Grundsätzlich habe ich eine Liste von Bildern zur Bearbeitung. Und ich muss nach dem Laden eine Vorverarbeitung (Datenerweiterung) machen, dann füttere den Hauptgraphen von TF. Derzeit arbeite ich mit einem angepassten Generator, der eine Liste von Pfaden erhält, ein Paar Tensoren (Bilder) liefert und über Platzhalter dem Netzwerk zuführt. Und die sequentielle Verarbeitung dauerte ~ 0.5s für jede Charge.Tensorflow: Wie benutze ich die "neue" Dataset API mit QueueRunner
Ich habe gerade die Dataset-API gelesen, die ich direkt mit der Funktion .from_generator() verwenden könnte, und ich könnte die .get_next() als Eingabe direkt verwenden.
Aber wie passt der QueueRunner in das Framework? Verwendet Dataset implizit queue + dequeue, um seine generator/get_next-Pipeline beizubehalten, oder erfordert es, dass ich danach explizit in eine FIFOQueue einspeise? Wenn die Antwort die spätere lautet, was ist die beste Vorgehensweise, um die Pipeline so zu trainieren, dass mehrere zufällige_Zufallsepochen trainiert und validiert werden? (Ich meine, wie viele DS/queueRunner muss ich pflegen, und wo stelle ich die Shuffle und Epochen)
Danke.
Für das Training schaffe ich zwei Datensätze: eine für die Ausbildung und eine für die Validierung. Sie können die Epochen festlegen und die Daten mit der Dataset-API mischen. Ich brauchte nie einen QueueRunner. – Sunreef
Ich hoffe, den QueueRunner zu verwenden, um Daten (CPU) zu verarbeiten und Netzwerk (GPU) gleichzeitig zu trainieren, um die CPU-Zeit zu verbergen. Es scheint, Dataset allein kann das nicht erreichen, oder? –