2017-02-24 8 views
5

Ich implementiere derzeit den tiefen Doppel-Q-Lernalgorithmus in TensorFlow. Ich habe einen erfahrenen Replay-Puffer basierend auf NumPy-Arrays implementiert. Einige Leistungsanalysen zeigen jedoch, dass das Einspeisen der Daten von NumPy-Arrays in das Diagramm mit feed_dict sehr ineffizient ist. Darauf wird auch in der Dokumentation https://www.tensorflow.org/performance/performance_guide hingewiesen.Effiziente Dateneingabe für Verstärkungslernalgorithmen

Hat jemand einen Vorschlag, wie die Fütterung effizienter durchgeführt werden kann? Bei statischen Datensätzen kann die Einspeisung über Eingabepipelines, wie z. B. Aufzeichnungsleser, erfolgen. Erleben Sie den Replay-Puffer jedoch im Laufe der Zeit, was diese Art der Fütterung schwieriger macht.

Alle Antworten werden sehr geschätzt, danke!

Antwort

0

Die kurze Antwort ist Es gibt keine Möglichkeit, es zu beschleunigen, wenn Ihre Daten ein Minimum festgelegt und einzigartig ist. Wenn Ihre Daten Redundanzen oder unnötige Dekoration aufweisen, die Sie entfernen können, entfernen Sie sie, bevor Sie sie in Ihr Modell einfügen. Wenn Sie dies jedoch bereits getan haben und Ihre Daten in jedem Batch eindeutig sind, dann gibt es nichts (in dieser Hinsicht)) dass Sie tun können.

Das heißt, es gibt Dinge, die Sie tun können, um die Leistung Ihres Netzwerks zu verbessern.

  • Ihr Q-Lernalgorithmus in der Lage sein, wie pro this paper verbessert werden, was im Grunde sagt, nicht eine Lernphase, bis Ihr Netzwerkes als akkumulierte Fehler an einer Schwelle tun.
  • Wenn Sie einige Trainingssätze wiederverwenden oder wiedergeben, können Sie die Trainingsdaten mit einer Ladestufe für eine schnelle Wiedergabe in die GPU laden.
Verwandte Themen