-1

再現性は重要です。私が現在取り組んでいるクローズドソースの機械学習プロジェクトでは、それを達成するのは困難です。注目すべきパーツは?

4

1 に答える 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パラメーターがあります。

確認事項

  1. 毎回同じ順序でデータをロードしていますか?
  2. モデルを同じ方法で初期化しますか?
  3. 変更される可能性のある外部データを使用していますか?
  4. 変化する可能性のある外部状態を使用していますか (例: datetime.now)?
于 2018-08-06T21:01:40.397 に答える