前提・実現したいこと
Kerasを使ってモデル開発中なのですが、再現性を得るためには乱数を固定する必要があると公式ドキュメンテーションに記載があります。
https://keras.io/ja/getting-started/faq/
ただし、他のサイト等も確認すると、こちらはCPUを使う場合に限っており、私はGPUを使っているので、少し書き換えて使っています。
エラーは発生しませんが、ちゃんとうまく機能しているかもよく分からないため、コードの中身をよく理解しようと思ったのですが、調べても見つけられなかったのでこちらに質問させていただきました。
①乱数の設定値は大体どれくらいにするのが目安なのでしょうか?また、設定する数字は揃えた方がいいですか?Kerasの公式ドキュメントはばらばらの数字を入れていましたが、数字は揃えた方がいいという記事も見ました。
②GPUを使う場合、乱数を固定しても再現性は得られないという記事を見ました。それならば乱数はあまり気にしなくて良いのでしょうか?
③以下のコードで何を行っているのか、一行ずつ解説していただけるととても助かります(例えば、なぜseed(5)が3回も出てくるのかよく分かりません…)。
初心者の質問でお手数をお掛けしますが、どうぞよろしくお願いいたします。
該当のソースコード
Python
1import numpy as np 2import tensorflow as tf 3import random as rn 4 5os.environ['PYTHONHASHSEED'] = '0' 6 np.random.seed(5) 7 rn.seed(5) 8 9 config = tf.ConfigProto() 10 config.gpu.options.per_process_gpu_memory_fraction = 0.8 11 #session_conf = tf.ConfigProto(intra_op_parallelism_threads=1, inter_op_parallelism_threads=1) 12 13 tf.set_random_seed(5) 14 sess = tf.Session(graph=tf.get_default_graph(), config=config)#session_conf) 15 K.set_session(sess)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/11 06:45
2019/07/11 06:48