[PYTHON] Garantie de reproductibilité avec les keras (à partir du 22 septembre 2020)

introduction

Lors de la reproduction de l'apprentissage avec keras, les informations qui sortent en premier lors de la recherche et du document japonais officiel sont la méthode de l'ancienne version, et maintenant la méthode a changé, alors enregistrez-la.

version

Garantie de reproductibilité

Définition des variables d'environnement

Depuis python3.2.3, la reproductibilité de l'opération basée sur le hachage de python peut être garantie en corrigeant la valeur de PYTHONHASHSEED.

export PYTHONHASHSEED=0

De plus, PYTHONHASHSEED doit être défini avant l'exécution du programme, pas dans le 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

D'autres articles disent qu'il pourrait être reproduit sans définir de variables d'environnement, donc cela peut ne pas être nécessaire. https://sanshonoki.hatenablog.com/entry/2019/01/15/230054

Valeur de départ de bibliothèque fixe

Extrait de la page du document officiel de Kersa. Le code ici a changé par rapport à la version précédente.

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 ...

finalement

Assurez-vous que la documentation est mise à jour avec la dernière version. (Commandement)

Page de référence

FAQ Keras: Comment puis-je obtenir des résultats reproductibles en utilisant Keras pendant le développement? (Consulté le 22/09/2020)

Recommended Posts

Garantie de reproductibilité avec les keras (à partir du 22 septembre 2020)
Keras comme wrapper de Theano et TensorFlow
Prédiction de l'onde de péché avec keras
4/22 prédiction de l'onde de péché avec keras
Reconnaissance faciale des personnages d'anime avec Keras
Bilan du premier défi du machine learning avec Keras
Résumé de Tensorflow / Keras
Reconnaissance d'image avec keras
Tutoriel CIFAR-10 avec Keras
LSTM multivarié avec Keras
À la suite du montage et du réglage avec POH! Lite
Utilisation de Docker (Hyper-V) avec PyCharm sur Windows 10 (à partir d'août 2017)
Comment enregistrer un package dans PyPI (à partir de septembre 2017)
J'ai essayé la reconnaissance de caractères manuscrits des caractères runiques avec CNN en utilisant Keras