設置圖級隨機seed。
依賴於隨機seed的操作實際上從兩個seed中獲取:圖級和操作級seed。 這將設置圖級別的seed。
其與操作級seed的相互作用如下:
1.如果沒有設置圖形級別和操作seed,則使用隨機seed進行操作。
2.如果設置了圖級seed,但操作seed沒有設置:系統確定性地選擇與圖級seed一起的操作seed,以便獲得唯一的隨機序列。
3.如果沒有設置圖級seed,但是設置了操作seed:使用默認的圖級seed和指定的操作seed來確定隨機序列。
4.如果圖級和操作seed都被設置:兩個seed聯合使用以確定隨機序列。
為了說明用戶可見的效果,請考慮以下示例:
要跨會話生成不同的序列,既不設置圖級別也不設置op級別的seed:
a = tf.random_uniform([1]) b = tf.random_normal([1]) print("Session 1") with tf.Session() as sess1: print(sess1.run(a)) # generates 'A1' print(sess1.run(a)) # generates 'A2' print(sess1.run(b)) # generates 'B1' print(sess1.run(b)) # generates 'B2' print("Session 2") with tf.Session() as sess2: print(sess2.run(a)) # generates 'A3' print(sess2.run(a)) # generates 'A4' print(sess2.run(b)) # generates 'B3' print(sess2.run(b)) # generates 'B4'
要為跨會話生成一個可操作的序列,請為op設置seed:
a = tf.random_uniform([1], seed=1)
b = tf.random_normal([1])
# Repeatedly running this block with the same graph will generate the same # sequence of values for 'a', but different sequences of values for 'b'. print("Session 1") with tf.Session() as sess1: print(sess1.run(a)) # generates 'A1' print(sess1.run(a)) # generates 'A2' print(sess1.run(b)) # generates 'B1' print(sess1.run(b)) # generates 'B2' print("Session 2") with tf.Session() as sess2: print(sess2.run(a)) # generates 'A1' print(sess2.run(a)) # generates 'A2' print(sess2.run(b)) # generates 'B3' print(sess2.run(b)) # generates 'B4'
為了使所有op產生的隨機序列在會話之間是可重復的,請設置一個圖級別的seed:
tf.set_random_seed(1234) a = tf.random_uniform([1]) b = tf.random_normal([1]) # Repeatedly running this block with the same graph will generate different # sequences of 'a' and 'b'. print("Session 1") with tf.Session() as sess1: print(sess1.run(a)) # generates 'A1' print(sess1.run(a)) # generates 'A2' print(sess1.run(b)) # generates 'B1' print(sess1.run(b)) # generates 'B2' print("Session 2") with tf.Session() as sess2: print(sess2.run(a)) # generates 'A1' print(sess2.run(a)) # generates 'A2' print(sess2.run(b)) # generates 'B1' print(sess2.run(b)) # generates 'B2'
Args:
seed: integer.