簡體   English   中英

Tensorflow`set_random_seed`無效

[英]Tensorflow `set_random_seed` not working

調用tf.set_random_seed(SEED)沒有任何影響,我可以告訴...

例如, 在IPython筆記本中多次運行下面的代碼每次都會產生不同的輸出:

import tensorflow as tf
tf.set_random_seed(42)
sess = tf.InteractiveSession()
a = tf.constant([1, 2, 3, 4, 5])
tf.initialize_all_variables().run()
a_shuf = tf.random_shuffle(a)
print(a.eval())
print(a_shuf.eval())
sess.close()

如果我明確設置種子: a_shuf = tf.random_shuffle(a, seed=42) ,每次運行后輸出相同。 但是,如果我已經調用tf.set_random_seed(42)為什么還需要設置種子?


使用numpy的等效代碼正常工作:

import numpy as np
np.random.seed(42)
a = [1,2,3,4,5]
np.random.shuffle(a)
print(a)

這僅設置圖級隨機種子。 如果連續多次執行此代碼段,圖表將會更改,兩個shuffle語句將獲得不同的操作級別種子。 詳細信息在set_random_seeddoc字符串set_random_seed

要獲得確定性的a_shuf你也可以

  1. 在調用或調用之間調用tf.reset_default_graph()
  2. 為shuffle設置操作級別種子: a_shuf = tf.random_shuffle(a, seed=42)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM