This question
很相似,但没有答案,请看评论帖。一般来说,您不能在任何给定的时间“提取种子”,因为一旦RNG开始工作,就没有种子了。
tf.set_random_seed
random_seed.py
):
顺便说一下,当它们被设置好的时候,你可以看到它们。您只需要访问您感兴趣的特定随机操作并读取其属性
seed
seed2
. 请注意,TensorFlow公共函数会返回一些操作(缩放、置换)的结果,因此您必须“向上爬”一点图形才能得到有趣的结果:
import tensorflow as tf
def print_seeds(random_normal):
# Get to the random TensorFlow op (RandomStandardNormal) and print seeds
random_op = random_normal.op.inputs[0].op.inputs[0].op
print(random_op.get_attr('seed'), random_op.get_attr('seed2'))
print_seeds(tf.random_normal(()))
# 0 0
print_seeds(tf.random_normal((), seed=100))
# 87654321 100
tf.set_random_seed(200)
print_seeds(tf.random_normal(()))
# 200 15
print_seeds(tf.random_normal((), seed=300))
# 200 300
不幸的是,当种子未指定时,无法检索由TensorFlow生成的随机值。这两个随机数被传递给
,它使用它们初始化其内部
key_
和
counter_