Distributed Tensorflow: gutes Beispiel für synchrones Training auf CPUs

8

Ich bin neu im verteilten Tensorflow und suche ein gutes Beispiel für das synchrone Training auf CPUs.

Ich habe bereits das Beispiel Distributed Tensorflow ausprobiert und kann das asynchrone Training erfolgreich über einen Parameterserver durchführen ( 1 Maschine mit 1 CPU) und 3 Arbeiter (jeder Arbeiter = 1 Maschine mit 1 CPU). Wenn es jedoch um das synchrone Training geht, kann ich es nicht korrekt ausführen, obwohl ich das Tutorial von SyncReplicasOptimizer (V1.0 und V2.0) .

Ich habe den offiziellen SyncReplicasOptimizer-Code in das funktionierende asynchrone Trainingsbeispiel eingefügt, aber der Trainingsprozess ist immer noch asynchron. Mein detaillierter Code ist wie folgt. Jeder Code bezieht sich auf synchrones Training innerhalb des Blocks von ******.

%Vor%

Irgendwas stimmt nicht mit meinem Code? Oder kann ich ein gutes Beispiel folgen?

    
leonardo_zz 23.12.2016, 00:23
quelle

3 Antworten

0

Ich bin mir nicht sicher, ob Sie sich für den nutzertransparenten verteilten Tensorflow interessieren würden, der MPI im Backend verwendet. Wir haben kürzlich eine solche Version mit MaTEx entwickelt: Ссылка .

Daher müssen Sie für verteilten TensorFlow keinen SyncReplicaOptimizer-Code schreiben, da alle Änderungen vom Benutzer abstrahiert werden.

Hoffe, das hilft.

    
Abhinav Vishnu 03.05.2017 22:13
quelle
0

Ich denke, Ihre Frage kann wie die Kommentare in der Ausgabe # 9596 des Tensorflusses beantwortet werden. Dieses Problem wird durch die Fehler der neuen Version von tf.train.SyncReplicasOptimizer () verursacht. Sie können die alte Version dieser API verwenden, um dieses Problem zu vermeiden.

Eine andere Lösung ist von Tensorflow Distributed Benchmarks . Sehen Sie sich den Quellcode an und Sie können feststellen, dass sie die Arbeiter manuell über die Warteschlange im Tensorflow synchronisieren. Durch Experimente läuft dieser Benchmark genau so, wie Sie es erwarten.

Ich hoffe, dass diese Kommentare und Ressourcen Ihnen helfen, Ihr Problem zu lösen. Danke!

    
XINFENG XIE 07.05.2017 05:48
quelle
0

Ein Problem ist, dass Sie eine aggregation_method in der minimize-Methode angeben müssen, damit sie synchron ausgeführt wird,

%Vor%     
Michael Sprague 08.06.2017 04:03
quelle