tensorflow API:tf.set_random_seed同一随机种子不改变的设置

本文介绍了如何在TensorFlow中设置会话级和图级种子,以确保随机数生成的一致性。通过设置种子,可以跨会话生成相同的随机数。然而,即使设置相同种子,不同操作也可能产生不同结果,因为TensorFlow的随机运算符具有状态。为了获得一致的结果,应在同一`sess.run`中执行相关操作,并将生成器设为变量。
摘要由CSDN通过智能技术生成

会话级种子

设置随机函数的seed参数,对应的变量可以跨session生成相同的随机数:

  • 例子
tf.reset_default_graph()
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'

结果:变量a跨会话生成的随机数相同,b则不同。

Session 1
[0.2390374]
[0.22267115]
[0.9374042]
[0.57995176]
Session 2
[0.2390374]
[0.22267115]
[-1.6857139]
[0.6809292]

图级种子

通过tf.set_random_seed设定种子数,后面定义的全部变量都可以跨会话生成相同的随机数。
* 例子:

tf.reset_default_graph()
tf.set_random_seed(1234)
a = tf.random_uniform(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值