为默认图设置 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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。