解决GPU模型训练的随机性
問題:重復使用GPU訓練模型(所有條件完全一致),模型結果不一致?
原則:1、訓練數據與測試數據切割是一致的;2、?保證加載的訓練數據是確定的;3、確定random seed ,np.random.seed,graph-level seed ,operation-level seed
方案一:
?
實驗表明:該方法無法做到模型效果復現
?
方案二:
SEED =? 1234
random.seed(SEED)
np.random.seed(SEED)
tf.set_random_seed(SEED)
operation-level設置:
所有的tf.get_variable中的初始化加入tf.random_normal_initializer(seed=SEED)
其他的初始化方法有:
tf.constant_initializer:常量初始化函數
tf.random_normal_initializer:正態分布
tf.truncated_normal_initializer:截取的正態分布
tf.random_uniform_initializer:均勻分布
tf.zeros_initializer:全部是0
tf.ones_initializer:全是1
tf.uniform_unit_scaling_initializer:滿足均勻分布,但不影響輸出數量級的隨機值
?
dropout函數中加入參數seed=SEED
GRUCELL中加入核權重kernel_initializer=tf.orthogonal_initializer
其實驗數據表明無法消除隨機性,但結果差異變小;
?
總結
以上是生活随笔為你收集整理的解决GPU模型训练的随机性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决样本不平衡问题的奇技淫巧 汇总
- 下一篇: tensorflow随机性设置