2016-07-29 19 views
3

Ich mag würde wissen, wann der Platzierungsalgorithmus von TensorFlow (wie im Weißbuch beschrieben wird) tatsächlich verwendet wird. Alle Beispiele für die Verteilung von TensorFlow, die ich bisher gesehen habe, scheinen manuell anzugeben, wo die Knoten ausgeführt werden sollen, mit "tf.device()".TensorFlow Platzierungsalgorithmus

Antwort

4

Der dynamische Platzierungsalgorithmus in Abschnitt 3.2.1 der TensorFlow whitepaper beschrieben wurde in der Open-Source-Version nicht enthalten. Stattdessen wird die „einfache Placer“ (kann deren Umsetzung in simple_placer.cc gefunden werden) verwendet wird, aber es erfordert einige explizite Anmerkungen (via tf.device()), um eine effiziente Platzierung zu machen zu ergeben. Übergeordnetes Konstrukte wie tf.train.replica_device_setter() Wrap tf.device() eine gemeinsame Politik zu geben, wie „die Variablen über Parameter Server Scherbe, und sonst alle ops auf den Arbeiter Gerät setzen“, und wir nutzen diese ausführlich in distributed training.

In der Praxis haben wir festgestellt, dass ein kleiner Satz von Annotationen normalerweise eine effizientere Platzierung ergibt als der dynamische Platzierer, aber die Verbesserung des Platzierungsalgorithmus bleibt ein Bereich der aktiven Forschung.

+0

+ mrry Vielen Dank für Ihre Antwort. Gibt es einen Plan, den dynamischen Placer in der absehbaren Zukunft zu veröffentlichen? – MiniQuark

+1

+ mrry Nevermind, ich habe gerade festgestellt, dass diese Frage in https://github.com/tensorflow/tensorflow/issues/2126 diskutiert wird – MiniQuark