再現性は重要です。私が現在取り組んでいるクローズドソースの機械学習プロジェクトでは、それを達成するのは困難です。注目すべきパーツは?
質問する
144 次
1 に答える
3
種子の設定
コンピュータには、シードと呼ばれる値で初期化される疑似乱数ジェネレータがあります。機械学習の場合、次の操作が必要になる場合があります。
# I've heard the order here is important
import random
random.seed(0)
import numpy as np
np.random.seed(0)
import tensorflow as tf
tf.set_random_seed(0)
session_conf = tf.ConfigProto(intra_op_parallelism_threads=1,
inter_op_parallelism_threads=1)
sess = tf.Session(graph=tf.get_default_graph(), config=session_conf)
from keras import backend as K
K.set_session(sess) # tell keras about the seeded session
# now import keras stuff
参照: Keras FAQ: 開発中に Keras を使用して再現可能な結果を得るにはどうすればよいですか?
sklearn
sklearn.model_selection.train_test_splitにはrandom_state
パラメーターがあります。
確認事項
- 毎回同じ順序でデータをロードしていますか?
- モデルを同じ方法で初期化しますか?
- 変更される可能性のある外部データを使用していますか?
- 変化する可能性のある外部状態を使用していますか (例:
datetime.now
)?
于 2018-08-06T21:01:40.397 に答える