概述
RandomState作为Mersenne Twister伪随机数发生器的容器。
RandomState公开了许多用于生成从各种概率分布中提取的随机数的方法。除了特定于分发的参数之外,每个方法都采用默认为None的关键字参数 大小。
- 如果size为None,则生成并返回单个值。
- 如果size是整数,则返回填充了生成值的1-D数组。
- 如果size是一个元组,则填充并返回具有该形状的数组。
随机种子初始化伪随机数发生器。可以是整数,任意长度的整数数组(或其他序列),也可以是None(默认值)。如果seed为None,则RandomState将尝试从/ dev / urandom(或Windows模拟)中读取数据(如果可用),否则从时钟读取种子。
1,RandomState应用
在训练神经网络时,苦于没有数据,此时numpy为我们提供了 “生产” 数据集的一种方式。
import numpy as np
# 设置seed值,生成ndarray对象
SEED = 2222
# 基于seed产生随机数
rdm = np.random.mtrand.RandomState(SEED)
# rand函数产生随机数,返回32行2列矩阵
# 32行代表32组数据,2代表输入数据的2个特征
X = rdm.rand(32, 2)
# 为每组数据制备标签
# 若(体积+重量) ≥ 1,则 Y 赋值 0
# 若(体积+重量) < 1,则 Y 赋值 1
# Y 值为输入数据集的标签(正确答案),这里记为 Y_
Y_ = [[int(x0 + x1 < 1)] for (x0, x1) in X]
# 在神经网络中,print函数是可不写的
# 此处仅为了便于观察过程数据
print("X:n",X)
print("Y_:n",Y_)
输出如下:
X:
[[0.72720018 0.28898549]
[0.84958831 0.72706081]
[0.20943945 0.63031518]
[0.87853488 0.85733564]
[0.9919958 0.25845015]
[0.03842232 0.38609866]
[0.65607323 0.79059298]
[0.39962985 0.72230018]
[0.03642497 0.47008926]
[0.95306087 0.90524506]
[0.3696302 0.83432897]
[0.28926819 0.54505938]
[0.60519762 0.429539 ]
[0.67582936 0.99919274]
[0.17604048 0.76754937]
[0.69873835 0.8458034 ]
[0.72946299 0.77090942]
[0.95893772 0.52065197]
[0.51026042 0.72549506]
[0.13752722 0.44240834]
[0.02546257 0.74217963]
[0.4206484 0.33079034]
[0.46040295 0.70464219]
[0.36609694 0.13207232]
[0.11424162 0.69747853]
[0.45084243 0.44479715]
[0.24687041 0.78268242]
[0.61573627 0.60022867]
[0.4276501 0.58009485]
[0.42806566 0.67133675]
[0.23329054 0.99567699]
[0.57450239 0.32628898]]
Y_:
[[0], [0], [1], [0], [0], [1], [0], [0], [1], [0], [0], [1], [0], [0], [1], [0], [0], [0], [0], [1], [1], [1], [0], [1], [1], [1], [0], [0], [0], [0], [0], [1]]
2,RandomState的引用方法
# 两个语句等价
# 可认为是简写版
rdm = np.random.RandomState(SEED)
# 在多场合可看到的版本
rdm = np.random.mtrand.RandomState(SEED)
- 官方文档查看np.random.mtrand.RandomState
- 文献参考
3,RandomState的结果值
由于RandomState是类,所以打印不出具体结果,是对象地址
<mtrand.RandomState object at 0x0000022380FCA900>
当使用RandomState类中的方法时,就可以print出具体值。但不同的方法function会得到不同的结果。
rand()方法就可以得到0~1的随机值。
import tensorflow as tf
import numpy as np
SEED = 2222
rdm = np.random.mtrand.RandomState(SEED)
print(rdm)#打印对象地址
a = rdm.rand(32,2)
print(a)#打印随机数结果
<mtrand.RandomState object at 0x0000022380FCA900>
[[0.72720018 0.28898549]
[0.84958831 0.72706081]
[0.20943945 0.63031518]
[0.87853488 0.85733564]
[0.9919958 0.25845015]
[0.03842232 0.38609866]
[0.65607323 0.79059298]
[0.39962985 0.72230018]
[0.03642497 0.47008926]
[0.95306087 0.90524506]
[0.3696302 0.83432897]
[0.28926819 0.54505938]
[0.60519762 0.429539 ]
[0.67582936 0.99919274]
[0.17604048 0.76754937]
[0.69873835 0.8458034 ]
[0.72946299 0.77090942]
[0.95893772 0.52065197]
[0.51026042 0.72549506]
[0.13752722 0.44240834]
[0.02546257 0.74217963]
[0.4206484 0.33079034]
[0.46040295 0.70464219]
[0.36609694 0.13207232]
[0.11424162 0.69747853]
[0.45084243 0.44479715]
[0.24687041 0.78268242]
[0.61573627 0.60022867]
[0.4276501 0.58009485]
[0.42806566 0.67133675]
[0.23329054 0.99567699]
[0.57450239 0.32628898]]
最后
以上就是优秀万宝路为你收集整理的Numpy中的RandomState用法与场景的全部内容,希望文章能够帮你解决Numpy中的RandomState用法与场景所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复