python的seed和tensorflow的seed

标签: python tensorflow seed
10人阅读 评论(0) 收藏 举报
分类:

1、python seed

参考:http://www.runoob.com/python/func-number-seed.html

描述
seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。

语法
以下是 seed() 方法的语法:

import random

random.seed ( [x] )

注意:seed(()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

参数
x – 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

返回值
本函数没有返回值。

实例
以下展示了使用 seed(() 方法的实例:

import random

random.seed( 10 )
print("Random number with seed 10 : ", random.random())

# 生成同一个随机数
random.seed( 10 )
print("Random number with seed 10 : ", random.random())

# 生成同一个随机数
random.seed( 10 )
print("Random number with seed 10 : ", random.random())

random.seed( 9 )
print("Random number with seed 10 : ", random.random())

以上实例运行后输出结果为:

Random number with seed 10 :  0.5714025946899135
Random number with seed 10 :  0.5714025946899135
Random number with seed 10 :  0.5714025946899135
Random number with seed 10 :  0.46300735781502145

2、tensorflow seed

tensorflow中设置随机种子,可分为两类,图级seed和操作级seed,

  • 情况1:当没有设置图级seed和操作级seed时,生成的随机数是随机的
  • 情况2:当设置操作级seed时,生成的随机数是同一组随机数,没有设置操作级seed的操作,生成的随机数是随机的
  • 情况3:当设置图级seed, 将会生成同一组随机数,如果设置操作级seed又和情况2相同

实例:

import tensorflow as tf

print('情况1:当没有设置图级seed和操作级seed时,生成的随机数是随机的 ')
a = tf.random_uniform([1])
b = tf.random_normal([1])
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 'A3'
    print(sess2.run(a))  # generates 'A4'
    print(sess2.run(b))  # generates 'B3'
    print(sess2.run(b))  # generates 'B4'

print('情况2:当设置操作级seed时,生成的随机数是同一组随机数,没有设置操作级seed的操作,生成的随机数是随机的 ')
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'

print('情况3:当设置图级seed, 将会生成同一组随机数,如果设置操作级seed又和情况2相同')
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'

打印:

情况1:当没有设置图级seed和操作级seed时,生成的随机数是随机的 
Session 1
[ 0.33522117]
[ 0.10670769]
[-1.55416799]
[-0.15553159]
Session 2
[ 0.08545518]
[ 0.59008467]
[-0.24251401]
[-2.70422912]
情况2:当设置操作级seed时,生成的随机数是同一组随机数,没有设置操作级seed的操作,生成的随机数是随机的 
Session 1
[ 0.23903739]
[ 0.22267115]
[ 2.52735877]
[-0.62637132]
Session 2
[ 0.23903739]
[ 0.22267115]
[-0.48297331]
[-0.01883096]
情况3:当设置图级seed, 将会生成同一组随机数,如果设置操作级seed又和情况2相同
Session 1
[ 0.1211642]
[ 0.41471958]
[-1.76099801]
[-1.82982743]
Session 2
[ 0.1211642]
[ 0.41471958]
[-1.76099801]
[-1.82982743]
查看评论

Tensorflow函数——tf.set_random_seed(seed)

设置图级随机seed。依赖于随机seed的操作实际上从两个seed中获取:图级和操作级seed。 这将设置图级别的seed。其与操作级seed的相互作用如下:1.如果没有设置图形级别和操作seed,则...
  • eml_jw
  • eml_jw
  • 2017年05月16日 21:33
  • 5158

TensorFlow学习(五):数学与随机值

基本的数学和概率函数
  • xierhacker
  • xierhacker
  • 2016年12月24日 16:33
  • 4532

生成特定分布随机数的方法:Python seed() 函数&numpy &scikit-learn随机数据生成

描述seed() 方法改变随机数生成器的种子,可以在调用其他随机模块函数之前调用此函数。。语法以下是 seed() 方法的语法:import random random.seed ( [x] )注意:...
  • jiandanjinxin
  • jiandanjinxin
  • 2017年05月09日 15:55
  • 1643

Python 稳定的随机数 seed

import random random.seed( 10 ) random.random()
  • u012063703
  • u012063703
  • 2016年09月09日 10:49
  • 1355

Python-random.seed()的作用

random.seed(0)作用:使得随机数据可预测,即只要seed的值一样,后续生成的随机数都一样。 转载自:点击打开链接 >>>> numpy.random.see...
  • jiangjiang_jian
  • jiangjiang_jian
  • 2018年01月11日 11:02
  • 225

Tensorflow中关于随机数生成种子tf.set_random_seed()

   Tensorflow中的随机数生成种子是在数据流图资源上运作的。每一个数据流图中,我们可以执行针对随机数生成种子应用不同的操作(operation)。事实上,随机数生成种子作为random系列...
  • qq_31878983
  • qq_31878983
  • 2018年03月09日 13:21
  • 84

nump中的为随机数产生器的seed

在python的程序中,发现了如下的伪随机数产生的代码 rng = numpy.random.RandomState(23355) arrayA = rng.uniform(0,1,(2,3)...
  • tina_ttl
  • tina_ttl
  • 2016年04月01日 10:33
  • 548

Python seed() 函数

转自:http://www.w3cschool.cc/python/func-number-seed.html Random初始化的时候,可以以一个INT32作为参数,称为seed,MSDN上的...
  • qinglu000
  • qinglu000
  • 2015年05月28日 11:17
  • 10875

random VS numpy.random

给随机生成器设置seed的目的是每次运行程序得到的随机数的值相同,这样方便测试。numpy.random.seed()不是线程安全的,如果程序中有多个线程最好使用numpy.random.Random...
  • zm714981790
  • zm714981790
  • 2017年03月10日 12:12
  • 1369

tensorflow中random_normal的使用,案例说明,一看便知

先说明函数:tf.random_normaltf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, nam...
  • GoodShot
  • GoodShot
  • 2018年03月22日 14:33
  • 27
    个人资料
    持之以恒
    等级:
    访问量: 4万+
    积分: 1842
    排名: 2万+
    最新评论