在tensorflow机器学习过程中,发现了如下的伪随机数产生的代码:
import numpy
# 伪随机数生成
# 产生一个随机状态种子
rdm = numpy.random.RandomState(seed=None)
# 生成2*2的随机数
X = rdm.rand(2, 2)
print(X)
现在的问题是seed参数的问题:
1、numpy.random.RandomState()或者numpy.random.RandomState(seed=None)
import numpy
for i in range(4):
# 伪随机数生成
# 产生一个随机状态种子
rdm = numpy.random.RandomState(seed=None)
# 生成2*2的随机数
X = rdm.rand(2, 2)
print(X)
结果如下:
[[0.83835762 0.71838185]
[0.45947428 0.66974438]]
[[0.67096788 0.97604589]
[0.44965953 0.69030001]]
[[0.77489668 0.6134324 ]
[0.5774214 0.17553482]]
[[0.58315188 0.21092608]
[0.72681226 0.75760607]]
循环4次,每次生成的随机数都不同。
2、numpy.random.RandomState(1)或者numpy.random.RandomState(seed=1)
import numpy
for i in range(4):
# 伪随机数生成
# 产生一个随机状态种子
rdm = numpy.random.RandomState(seed=1)
# 生成2*2的随机数
X = rdm.rand(2, 2)
print(X)
结果如下:
[[4.17022005e-01 7.20324493e-01]
[1.14374817e-04 3.02332573e-01]]
[[4.17022005e-01 7.20324493e-01]
[1.14374817e-04 3.02332573e-01]]
[[4.17022005e-01 7.20324493e-01]
[1.14374817e-04 3.02332573e-01]]
[[4.17022005e-01 7.20324493e-01]
[1.14374817e-04 3.02332573e-01]]
循环4次,每次生成的随机数都一样。seed设置成其它数字,生产的随机数都是一样的,我想seed应该是种子编号,跟生成随机数没有关系,例如1号种子,2号种子等等。
菜鸟一枚,发表博客的主要目的是为了记录tensorflow机器学习中的点滴,方便自己以后查阅,如果有错误的地方,还请大家多提宝贵意见。