Tensorflow学习笔记——tf.set_random_seed函数

设置图级随机seed
依赖于随机seed的操作实际上从两个seed中获取:图级和操作级seed。这将设置图级别的seed
其与操作级seed的相互作用如下:

  1. 如果没有设置图级和操作级seed,则使用随机seed进行操作。
  2. 如果设置了图级seed,但操作级seed没有设置:系统确定性的选择与图级seed一起的操作seed,以便获得唯一的随机序列。
  3. 如果没有设置图级seed,但是设置了操作seed,设置默认的图级seed和指定的操作eed来确定随机序列。
  4. 如果图级和操作级seed都被设置·,两个seed联合使用以确定随机序列

示例:

  • 要在会话中生成不同的序列,那就不要设置图级seed或者操作级seed:
a = tf.random_uniform([1])
b = tf.random.normal([1])

print("Session 1")
with tf.Session() as sess1:
	print(sess1.run(a))
	print(sess1.run(a))
	print(sess1.run(b))
	print(sess1.run(b))

print("Session 2")
with tf.Session() as sess2:
	print(sess2.run(a))
	print(sess2.run(a))
	print(sess2.run(b))
	print(sess2.run(b))
  • 要为会话中的操作生成相同的可重复序列,请为操作设置seed:
a = tf.random_uniform([1], seed=1)
b = tf.ranodm_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.Sesstion() as sess1:
	print(sess1.run(a))
	print(sess1.run(a))
	print(sess	1.run(b))
	print(sess1.run(b))

print("Session 2")
with tf.Session() as sess2:
	pirnt(sess2.run(a))
	pirnt(sess2.run(a))
	pirnt(sess2.run(b))
	pirnt(sess2.run(b))
  • 要使所有操作生成的随机序列在会话中可重复,请设置图形级别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 the same
# 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'

Reference:
https://www.w3cschool.cn/tensorflow_python/tensorflow_python-fqc42jvo.html
https://blog.csdn.net/qq_31878983/article/details/79495810

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值