[PYTHON] Garantie der Reproduzierbarkeit mit Keras (Stand 22. September 2020)

Einführung

Wenn Sie das Lernen mit Keras reproduzieren, sind die Informationen, die zuerst bei der Suche und im offiziellen japanischen Dokument angezeigt werden, die Methode der alten Version, und jetzt hat sich die Methode geändert. Notieren Sie sie daher.

Ausführung

Reproduzierbarkeitsgarantie

Umgebungsvariablen einstellen

Seit Python3.2.3 kann die Reproduzierbarkeit der Hash-basierten Operation von Python durch Festlegen des Werts von PYTHONHASHSEED gewährleistet werden.

export PYTHONHASHSEED=0

Außerdem muss PYTHONHASHSEED vor der Ausführung des Programms festgelegt werden, nicht im Code.

$ python -c 'import os;os.environ["PYTHONHASHSEED"]="0";print(hash("keras"))'  
2834998937574676049  
$ python -c 'import os;os.environ["PYTHONHASHSEED"]="0";print(hash("keras"))'  
-1138434705774533911  
$ PYTHONHASHSEED=0 python -c 'print(hash("keras"))'  
4883664951434749476  
$ PYTHONHASHSEED=0 python -c 'print(hash("keras"))'  
4883664951434749476

Andere Artikel sagen, dass es reproduziert werden könnte, ohne Umgebungsvariablen festzulegen, so dass es möglicherweise nicht notwendig ist. https://sanshonoki.hatenablog.com/entry/2019/01/15/230054

Der Startwert der Bibliothek wurde korrigiert

Auszug aus der offiziellen Dokumentenseite von Kersa. Der Code hier hat sich gegenüber der vorherigen Version geändert.

import numpy as np  

import tensorflow as tf  
import random as python_random  

# The below is necessary for starting Numpy generated random numbers  
# in a well-defined initial state.  
np.random.seed(123)  

# The below is necessary for starting core Python generated random numbers  
# in a well-defined state.  
python_random.seed(123)  

# The below set_seed() will make random number generation  
# in the TensorFlow backend have a well-defined initial state.  
# For further details, see:  
# https://www.tensorflow.org/api_docs/python/tf/random/set_seed  
tf.random.set_seed(1234)  

# Rest of code follows ...

Schließlich

Stellen Sie sicher, dass die Dokumentation auf die neueste Version aktualisiert ist. (Gebot)

Referenzseite

Keras-FAQ: Wie kann ich mit Keras während der Entwicklung reproduzierbare Ergebnisse erzielen? (Gesehen am 22.09.2020)

Recommended Posts

Garantie der Reproduzierbarkeit mit Keras (Stand 22. September 2020)
Keras als Wrapper von Theano & TensorFlow
Vorhersage der Sinuswelle mit Keras
4/22 Vorhersage der Sinuswelle mit Keras
Gesichtserkennung von Anime-Charakteren mit Keras
Aufzeichnung der ersten Herausforderung des maschinellen Lernens mit Keras
Tensorflow / Keras-Zusammenfassung
Bilderkennung mit Keras
CIFAR-10-Tutorial mit Keras
Multivariates LSTM mit Keras
Als Ergebnis der Montage und Abstimmung mit POH! Lite
Verwenden von Docker (Hyper-V) mit PyCharm unter Windows 10 (Stand August 2017)
So registrieren Sie ein Paket in PyPI (Stand September 2017)
Ich habe versucht, die handschriftliche Zeichenerkennung von Runenzeichen mit CNN mithilfe von Keras zu erkennen