Der Zufallszahlengenerator unterscheidet zwischen Tensorflow 1.0.1 und 0.12.1

8

Ich versuche, auf die Tensorflow-Version 1.0 zu aktualisieren, bin aber zu dem Schluss gekommen, dass ich meine frühere Ausgabe nicht reproduzieren kann, weil der Zufallszahlengenerator anders zu sein scheint. Ich muss in der Lage sein, meine Ergebnisse zu reproduzieren, sodass ich den Seed immer auf einen konstanten Wert setze.

%Vor%

Ausgabe:

%Vor%

Ich führe Python v3.5.2 unter Windows x64 aus. Ich sehe im Übergangsdokument nichts, das diesen Unterschied beschreibt. Gibt es eine Möglichkeit, meine früheren Ergebnisse nach dem Upgrade zu reproduzieren?

    
Jay 27.03.2017, 21:10
quelle

1 Antwort

2

Der wahrscheinlichste Täter ist, dass sich die Anzahl der Ops ändert, die vor der vom Initialisierer erstellten Zufallsoperation generiert wurden. Wenn Sie keinen Pro-Op-Seed festlegen, wählt TensorFlow einen Seed basierend auf der Integer-ID des Random-Operators. Dies ist nur die Anzahl der Ops, die vor diesem Punkt erstellt wurden. Möglicherweise müssen Sie den an tf.get_variable übergebenen Initialisierer manuell überschreiben, wenn Sie dies durch Festlegen eines expliziten Startwerts testen möchten.

Im Allgemeinen versprechen wir keine Übereinstimmung der Zufallszahlen zwischen verschiedenen Versionen von TensorFlow . Wir versuchen zu dokumentieren, wann sie sich ändern, aber das ist nur nützlich, wenn Sie Pro-Op-Seeds setzen, da wir nicht versuchen zu dokumentieren, wenn sich die Anzahl der Ops ändert. Das relevante Bit dieses Links ist

  

Zufallszahlen: Die von Zufallsoperationen berechneten spezifischen Zufallszahlen können sich jederzeit ändern: Benutzer sollten sich nur auf ungefähr korrekte Verteilungen und statistische Stärke verlassen, nicht auf die berechneten spezifischen Bits. Wir werden jedoch selten und idealerweise niemals für Patch-Releases Änderungen an zufälligen Bits vornehmen, und alle beabsichtigten Änderungen werden dokumentiert.

    
Geoffrey Irving 28.03.2017, 16:19
quelle

Tags und Links