為默認圖設置 graph-level 隨機種子。
用法
tf.compat.v1.set_random_seed(
seed
)
參數
-
seed
整數。
遷移到 TF2
警告:這個 API 是為 TensorFlow v1 設計的。繼續閱讀有關如何從該 API 遷移到本機 TensorFlow v2 等效項的詳細信息。見TensorFlow v1 到 TensorFlow v2 遷移指南有關如何遷移其餘代碼的說明。
'tf.compat.v1.set_random_seed' 與即刻模式兼容。但是,在 Eager 模式下,此 API 將設置全局種子,而不是默認圖形的 graph-level 種子。在 TF2 中,此 API 更改為 tf.random.set_seed。
依賴隨機種子的操作實際上是從兩個種子中派生出來的:graph-level 和 operation-level 種子。這將設置 graph-level 種子。
它與operation-level種子的交互如下:
- 如果既沒有設置graph-level 也沒有設置操作種子:此操作使用隨機種子。
- 如果設置了graph-level 種子,但未設置操作種子:係統確定性地選擇與graph-level 種子一起的操作種子,以便獲得唯一的隨機序列。在同一版本的 tensorflow 和用戶代碼中,此序列是確定性的。但是,在不同的版本中,此順序可能會發生變化。如果代碼依賴於特定的種子來工作,請明確指定 graph-level 和 operation-level 種子。
- 如果沒有設置graph-level種子,但設置了操作種子:使用默認的graph-level種子和指定的操作種子來確定隨機序列。
- 如果graph-level和操作種子都設置了:兩個種子一起使用來確定隨機序列。
為了說明 user-visible 效果,請考慮以下示例:
要跨會話生成不同的序列,既不設置 graph-level 也不設置 op-level 種子:
a = tf.random.uniform([1])
b = tf.random.normal([1])
print("Session 1")
with tf.compat.v1.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.compat.v1.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'
要為跨會話的操作生成相同的可重複序列,請設置操作的種子:
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.compat.v1.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.compat.v1.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'
要使所有操作生成的隨機序列在會話中可重複,請設置 graph-level 種子:
tf.compat.v1.random.set_random_seed(1234)
a = tf.random.uniform([1])
b = tf.random.normal([1])
# Repeatedly running this block with the same graph will generate the same
# sequences of 'a' and 'b'.
print("Session 1")
with tf.compat.v1.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.compat.v1.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'
相關用法
- Python tf.compat.v1.setdiff1d用法及代碼示例
- Python tf.compat.v1.strings.length用法及代碼示例
- Python tf.compat.v1.scatter_min用法及代碼示例
- Python tf.compat.v1.summary.merge用法及代碼示例
- Python tf.compat.v1.size用法及代碼示例
- Python tf.compat.v1.scatter_add用法及代碼示例
- Python tf.compat.v1.summary.FileWriter用法及代碼示例
- Python tf.compat.v1.scatter_div用法及代碼示例
- Python tf.compat.v1.space_to_batch用法及代碼示例
- Python tf.compat.v1.string_split用法及代碼示例
- Python tf.compat.v1.squeeze用法及代碼示例
- Python tf.compat.v1.sparse_to_dense用法及代碼示例
- Python tf.compat.v1.sparse_segment_sum用法及代碼示例
- Python tf.compat.v1.scatter_update用法及代碼示例
- Python tf.compat.v1.sparse_split用法及代碼示例
- Python tf.compat.v1.string_to_number用法及代碼示例
- Python tf.compat.v1.saved_model.simple_save用法及代碼示例
- Python tf.compat.v1.scatter_nd_sub用法及代碼示例
- Python tf.compat.v1.sparse_reduce_max用法及代碼示例
- Python tf.compat.v1.shape用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.compat.v1.set_random_seed。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。