numpy中的np.random.mtrand.RandomState
1 RandomState 的应用场景概述
在训练神经网络时,苦于没有数据,此时numpy为我们提供了 “生产” 数据集的一种方式。
例如在搭建神经网络(一)中的 4.3 准备数据集 章节中就是采用np.random.mtrand.RandomState “生产” 数据的。
常用的方式如下
import numpy as np # 设置seed值,生成ndarray对象 SEED = 23455 # 基于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_)
2 RandomState 对象介绍
为了更为清晰地看RandomState,使用help函数打印出RandomState信息。
无论是从命名规则和帮助文档可确定RandomSate是一个类。
import numpy as np rdm = np.random.mtrand.RandomState() print(rdm)
运行
<mtrand.RandomState object at 0x00000166B6599BD0>
2.1 RandomState用途
RandomState作为Mersenne Twister伪随机数发生器的容器。
RandomState类中有许多方法,用于从各种概率分布中生成随机数。类中的每个方法都有特定于分布的参数,但所有方法中都包含有一个 'size' 参数。
- None - 生成并返回单个值
- 整数integer - 生成并返回一个生成值的1-D数组
- 元组tuple- 生成并返回一个具有该形状shape的数组。
类中的方法及其方法中的参数详见 numpy.random.mtrand.RandomState
备注:
类RandomState调用的固定的种子和系列( A fixed seed and a fixed series)等相同的参数将会产生相同的结果,也可理解为类RandomState中使用相同integer或array_like参数等固定种子将会产生相同的结果。
Python stdlib模块 “random” 还包含一个Mersenne Twister伪随机数生成器,其中有许多方法类似于`RandomState`中可用的方法。 除了NumPy感知之外,`RandomState`的优点是它提供了更多的概率分布可供选择。
2.2 类的参数
可选参数为随机种子seed(用于初始化initialize伪随机数pseudo-random number生成器igenerator),可以是0~2**32-1间的任一整数integer,或array_like(array or other sequence)的整数integers。或默认值None。
- None - 生成并返回单个值,此时RandomState将尝试从‘/dev/urandom’或windows analogue读取数据(如果可用),否则将从时钟clock读取种子seed。
- int - 生成并返回一个生成值的一维数组
- array_like - 生成并返回一个具有该形状shape的数组。
2.3 RandomState的引用方法
# 两个语句等价 # 可认为是简写版 rdm = np.random.RandomState(SEED) # 在多场合可看到的版本 rdm = np.random.mtrand.RandomState(SEED)
在官方文档中(numpy.random.mtrand.RandomState)看到的结果。
2.4 RandomState的结果值
由于RandomState是类,所以打印不出具体结果,是对象地址
<mtrand.RandomState object at 0x00000170BB6A9AF8>
当使用RandomState类中的方法时,就可以print出具体值。但不同的方法function会得到不同的结果。
rand()方法就可以得到0~1的随机值。
import tensorflow as tf import numpy as np SEED = 23455 rdm = np.random.mtrand.RandomState(SEED) print(rdm) a = rdm.rand(32,2) print(a)
运行
<mtrand.RandomState object at 0x00000170BB6A9AF8> [[0.83494319 0.11482951] [0.66899751 0.46594987] [0.60181666 0.58838408] [0.31836656 0.20502072] [0.87043944 0.02679395] [0.41539811 0.43938369] [0.68635684 0.24833404] [0.97315228 0.68541849] [0.03081617 0.89479913] [0.24665715 0.28584862] [0.31375667 0.47718349] [0.56689254 0.77079148] [0.7321604 0.35828963] [0.15724842 0.94294584] [0.34933722 0.84634483] [0.50304053 0.81299619] [0.23869886 0.9895604 ] [0.4636501 0.32531094] [0.36510487 0.97365522] [0.73350238 0.83833013] [0.61810158 0.12580353] [0.59274817 0.18779828] [0.87150299 0.34679501] [0.25883219 0.50002932] [0.75690948 0.83429824] [0.29316649 0.05646578] [0.10409134 0.88235166] [0.06727785 0.57784761] [0.38492705 0.48384792] [0.69234428 0.19687348] [0.42783492 0.73416985] [0.09696069 0.04883936]]
numpy中的np.random.mtrand.RandomState的更多相关文章
- numpy中的np.round()取整的功能和注意
numpy中的np.round()取整的功能和注意 功能 np.round() 是对浮点数取整的一个函数,一般的形式为 np.round(a, b),其中a为待取整的浮点数,b为保留的小数点的位数 注 ...
- [转]numpy中的np.max 与 np.maximum区别
转自:https://blog.csdn.net/lanchunhui/article/details/52700895
- numpy中np.random.seed()的详细用法
在进行机器学习和深度学习中,我们会经常用到np.random.seed(),利用随机数种子,使得每次生成的随机数相同. numpy.randn.randn(d0,d1,...,dn) randn函数根 ...
- Numpy中np.random.randn与np.random.rand的区别,及np.mgrid与np.ogrid的理解
np.random.randn是基于标准正态分布产生的随机数,np.random.rand是基于均匀分布产生的随机数,其值在[0,1). np.mgrid 与np.ogrid的理解及区别:np.mgr ...
- 对抗生成网络-图像卷积-mnist数据生成(代码) 1.tf.layers.conv2d(卷积操作) 2.tf.layers.conv2d_transpose(反卷积操作) 3.tf.layers.batch_normalize(归一化操作) 4.tf.maximum(用于lrelu) 5.tf.train_variable(训练中所有参数) 6.np.random.uniform(生成正态数据
1. tf.layers.conv2d(input, filter, kernel_size, stride, padding) # 进行卷积操作 参数说明:input输入数据, filter特征图的 ...
- numpy中random的使用
import numpy as np a=np.random.random()#用于生成一个0到1的随机浮点数: 0 <= n < 1.0print(a)0.772000903322952 ...
- np.random.random()函数 参数用法以及numpy.random系列函数大全
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9751471.html 1.np.random.random()函数参数 np.random.r ...
- 【转】np.random.random()函数 参数用法以及numpy.random系列函数大全
转自:https://www.cnblogs.com/DOMLX/p/9751471.html 1.np.random.random()函数参数 np.random.random((1000, 20) ...
- numpy中np.c_和np.r_
np.r_:按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat() np.c_:按行连接两个矩阵,就是把两矩阵左右相加,要求行数相等,类似于pandas中的mer ...
随机推荐
- 【python】bytes与字符串的相互转化
代码: # bytes转字符串方式一 b=b'\xe9\x80\x86\xe7\x81\xab' string=str(b,'utf-8') print(string) # bytes转字符串方式二 ...
- Android基础(五) Service全解析----看不见的Activity
一.服务的介绍: 作为Android四大组件之中的一个,Service(服务)也常常运用于我们的日常使用中,它与Activity的差别在于:Service一直在后台执行.没实用户界面.所以绝不会到前台 ...
- linux 查找文件或者服务
[root@localhost ~]# whereis mysql mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/m ...
- springboot项目在Eclipse/Myeclipse中Debug启动跳转至断点(exitCurrentThread)
Spring Boot项目使用了spring-boot-devtools工具且在Eclipse中Debug调试会自动跳转到这个方法: public static void exitCurrentThr ...
- FasterRcnn训练数据集参数配置
说明:本博文假设你已经做好了自己的数据集,该数据集格式和VOC2007相同.做好数据集后,我们开始训练,下面是训练前的一些修改.本文来自:http://www.lai18.com/content/25 ...
- Java本地运行中文正常,部署到Weblogic中文乱码
在使用一个加密解密工具类的时候,在本地Main方法中运行正常,不会出现中文乱码,将其部署到Weblogic之后,控制台,Servlet中中出现中文乱码. 在Main方法运行时获取本地编码方式为UTF8 ...
- 浅谈关于QT中Webkit内核浏览器
关于QT中Webkit内核浏览器是本文要介绍的内容,主要是来学习QT中webkit中浏览器的使用.提起WebKit,大家自然而然地想到浏览器.作为浏览器内部的主要构件,WebKit的主要工作是渲染.给 ...
- SHELL 循环获取日期以及FOR使用
;i<=;i++)); do PYTHONPATH=lib/ bin/cupid -c conf/config.cfg -u http://shop33220311.taobao.com/?tb ...
- 【HDU 5647】DZY Loves Connecting(树DP)
pid=5647">[HDU 5647]DZY Loves Connecting(树DP) DZY Loves Connecting Time Limit: 4000/2000 MS ...
- MySQL 主从错误
1: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log fil ...