numpy.random.shuffle打乱顺序函数的实现


Posted in Python onSeptember 10, 2019

numpy.random.shuffle

在做将caffe模型和预训练的参数转化为tensorflow的模型和预训练的参数,以便微调,遇到如下函数:

def gen_data(source):
  while True:
    indices = range(len(source.images)) # indices = the number of images in the source data set
    random.shuffle(indices)
    for i in indices:
      image = np.reshape(source.images[i], (28, 28, 1))
      label = source.labels[i]
      yield image, label

之前卑鄙陋寡闻,不知道这个用法,按照字面上的意思是打乱,那么这里就应该是让训练数据集中的数据打乱顺序,然后一个挨着一个地(for i in indices)生成训练数据对。下面就从docs.scipy.org中查到的random.shuffle的用法:

numpy.random.shuffle(x)

Modify a sequence in-place by shuffling its contents.

Parameters: x : array_like The array or list to be shuffled.
Returns: None

举例

python>>>
>>> arr = np.arange(10)
>>> np.random.shuffle(arr)
>>> arr
[1 7 5 2 9 4 3 6 0 8]

This function only shuffles the array along the first index of a multi-dimensional array(多维矩阵中,只对第一维(行)做打乱顺序操作):

python>>>
>>> arr = np.arange(9).reshape((3, 3))
>>> np.random.shuffle(arr)
>>> arr
array([[3, 4, 5],
    [6, 7, 8],
    [0, 1, 2]])This function only shuffles the array along the first index of a multi-dimensional array:

参考:

[1] https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.shuffle.html#numpy-random-shuffle

[2] https://github.com/ethereon/caffe-tensorflow/blob/master/examples/mnist/finetune_mnist.py

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python里disconnect UDP套接字的方法
Apr 23 Python
Python实现带百分比的进度条
Jun 28 Python
Python subprocess模块详细解读
Jan 29 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
May 29 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
python2与python3共存问题的解决方法
Sep 18 Python
Python 使用 attrs 和 cattrs 实现面向对象编程的实践
Jun 12 Python
linux中如何使用python3获取ip地址
Jul 15 Python
python 处理微信对账单数据的实例代码
Jul 19 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python+pygame实现坦克大战
Sep 10 #Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
Sep 10 #Python
Python将视频或者动态图gif逐帧保存为图片的方法
Sep 10 #Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 #Python
Python字符串中添加、插入特定字符的方法
Sep 10 #Python
详解python uiautomator2 watcher的使用方法
Sep 09 #Python
一行Python代码制作动态二维码的实现
Sep 09 #Python
You might like
一步一步学习PHP(3) php 函数
2010/02/15 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
监控 url fragment变化的js代码
2010/04/19 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
纯JS实现轮播图
2017/02/22 Javascript
node使用UEditor富文本编辑器的方法实例
2017/07/11 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
Python中实现对list做减法操作介绍
2015/01/09 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
编辑求职信样本
2013/12/16 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
黄石寨导游词
2015/02/05 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python