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

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

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

(0)

相关推荐

  • Numpy之random函数使用学习

    random模块用于生成随机数,下面看看模块中一些常用函数的用法: numpy.random.rand(d0, d1, ..., dn):生成一个[0,1)之间的随机浮点数或N维浮点数组. #numpy.random.rand(d0, d1, ..., dn) import numpy as np #无参 np.random.rand()#生成生成[0,1)之间随机浮点数 type(np.random.rand())#float #d0,d1....表示传入的数组形状 #一个参数 np.rand

  • numpy.random模块用法总结

    random模块用于生成随机数,下面看看模块中一些常用函数的用法: from numpy import random numpy.random.uniform(low=0.0, high=1.0, size=None) 生出size个符合均分布的浮点数,取值范围为[low, high),默认取值范围为[0, 1.0) >>> random.uniform() 0.3999807403689315 >>> random.uniform(size=1) array([0.5

  • numpy.random.seed()的使用实例解析

    这个函数的使用方法,已经有前辈讲解过了,只是自己在测试的时候有一些思考,所以便写了这篇博客.下面是前辈文章的原话: seed( ) 用于指定随机数生成时所用算法开始的整数值,如果使用相同的seed( )值,则每次生成的随即数都相同,如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同. 编写如下第一份代码: from numpy import * num=0 while(num<5): random.seed(5) print(random.random())

  • 基于numpy.random.randn()与rand()的区别详解

    numpy 中有一些常用的用来产生随机数的函数,randn()和rand()就属于这其中. numpy.random.randn(d0, d1, -, dn) 是从标准正态分布中返回一个或多个样本值. numpy.random.rand(d0, d1, -, dn) 的随机样本位于[0, 1)中. import numpy as np arr1 = np.random.randn(2,4) print(arr1) print('**********************************

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

    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 =

  • Python使用random.shuffle()打乱列表顺序的方法

    Python的random.shuffle()函数可以用来乱序序列,它是在序列的本身打乱,而不是新生成一个序列. 示例: from random import shuffle x = [[i] for i in range(10)] shuffle(x) shuffle()返回的是None,列表x的顺序被打乱. 以上这篇Python使用random.shuffle()打乱列表顺序的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 在Keras中利用np.random.shuffle()打乱数据集实例

    我就废话不多说了,大家还是直接看代码吧~ from numpy as np index=np.arange(2000) np.random.shuffle(index) print(index[0:20]) X_train=X_train[index,:,:,:]#X_train是训练集,y_train是训练标签 y_train=y_train[index] 补充知识:Keras中shuffle和validation_split的顺序 模型的fit函数有两个参数,shuffle用于将数据打乱,v

  • Python使用random.shuffle()随机打乱字典排序

    示例.1 import random from random import shuffle x = [[i] for i in range(10)] shuffle(x) print(x) 运行结果: [[1], [2], [5], [0], [7], [9], [3], [8], [4], [6]][[6], [0], [7], [1], [3], [9], [5], [2], [4], [8]] 示例.2 dicts = { "productCode": "xyd&quo

  • Pytorch使用shuffle打乱数据的操作

    这个东西算是我被这个shuffle坑了的一个总结吧! 首先我得告诉你一件事,那就是pytorch中的tensor,如果直接使用random.shuffle打乱数据,或者使用下面的方式,自己定义直接写. def Shuffle(self, x, y,random=None, int=int): if random is None: random = self.random for i in range(len(x)): j = int(random() * (i + 1)) if j<=len(x

  • 详解Python中打乱列表顺序random.shuffle()的使用方法

    之前自己一直使用random中 randint生成随机数以及使用for将列表中的数据遍历一次. 现在有个需求需要将列表的次序打乱,或者也可以这样理解: [需求]将一个容器中的数据每次随机逐个遍历一遍. random.shuffle()方法提供了完美的解决方案. 不会生成新的列表,只是将原列表的次序打乱 # shuffle()使用样例 import random x = [i for i in range(10)] print(x) random.shuffle(x) print(x) 源码及注释

  • 对Python random模块打乱数组顺序的实例讲解

    在我们使用一些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本身,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后生成新的数组.功能主要由python中random模块的sample()函数实现. sample(population, k) method of random.Random instance Chooses k unique random elements from a population sequence or set. 下面的代码实现的是打乱iris数据,i

  • PHP内部实现打乱字符串顺序函数str_shuffle的方法

    前言 2019年春节已过,今天是上班第一天,还得翻一翻之前没有看完的PHP源码. 今天聊的是字符串顺序打乱函数str_shuffle.这个函数本身使用频率并不高.但是,其内部实现还是非常有趣的. str_shuffle() 函数随机地打乱字符串中的所有字符. 要注意,打乱的是字符串中的"字符" 一个字母等于一个字符 一个汉字等于2个字符 自己实现 如果在没有看PHP源码内部实现之前,如果使用php实现内部字符串打乱顺序的操作,我能想到的是下面几种方式. 循环随机数 使用随机数,可以有随

  • python随机模块random的22种函数(小结)

    前言   随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性.平时数据分析各种分布的数据构造也会用到.   random模块,用于生成伪随机数,之所以称之为伪随机数,是因为真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的.而计算机中的随机函数是按照一定算法模拟产生的,对于正常随机而言,会出现某个事情出现多次的情况.   但是伪随机在事情触发前设定好,就是这个十个事件各发生一次

随机推荐