这里先上一段官方文档中关于mxnet.ndarray.take()的定义:

主要用到一般就只有前三个参数,所以这里只列出了前三个参数的使用方法。

mxnet.nd.take(a = None, indices = None, axis = _Null, mode = _Null, out = None, name = None, **kwargs)
  • a必须是一个ndarray类型,a通常不放在参数列表中,而是将take作为一个类方法来调用:a.take()
  • indices:indices也必须是一个ndarray类型,表示提取元素的索引,
  • axis:int类型,默认axis = 0,0代表沿着行进行元素提取,1代表沿着列进行提取,依次列推

来看几个例子:

from mxnet import nd
>> x = nd.array([[1,2,3,4],[5,6,7,8],[10,11,12,13],[2,0,1,3]])
>> x
[[ 1.  2.  3.  4.][ 5.  6.  7.  8.][10. 11. 12. 13.][ 2.  0.  1.  3.]]
<NDArray 4x4 @cpu(0)>>> index = nd.array([0,2,3])
>> x.take(index)
#可以看到,take函数以行为轴,将索引为0、2、3的元素提取出来。
[[ 1.  2.  3.  4.][10. 11. 12. 13.][ 2.  0.  1.  3.]]
<NDArray 3x4 @cpu(0)>#现在我们把索引换成二维数组
>> index = nd.array([[0,2,3],[0,3,1]])
>> x.take(index)
#可以看到,take函数以默认的行为轴,分两次将元素提取出来。
#同样的,若我们指定axis=1,则take函数会以列为轴,按照索引来提取元素
>>x.take(index, axis = 1)
[[[ 1.  3.  4.][ 1.  4.  2.]][[ 5.  7.  8.][ 5.  8.  6.]][[10. 12. 13.][10. 13. 11.]][[ 2.  1.  3.][ 2.  3.  0.]]]
<NDArray 4x2x3 @cpu(0)>

在深度学习中,如果我们不使用mxnet的data.DataLoader进行数据提取时便可以使用take函数,只是相比起data.DataLoader稍许复杂。

def data_iter(batch_size, features, labels):num_examples = len(features)indices = list(range(num_examples))random.shuffle(indices)  # 样本的读取顺序是随机的for i in range(0, num_examples, batch_size):j = nd.array(indices[i: min(i + batch_size, num_examples)])yield features.take(j), labels.take(j)  # take函数根据索引返回对应元素

上面这段代码是沐神的《动手深度学习》中的一段函数定义,在这里features与labels分别是存储数据集的ndarray对象,batch_size为随机梯度下降的中小批量,我们可以看到for循环中的j代表从indices中按照batch_size大小提取的一系列随机排列的索引值,使用take函数便可以返回features和labels中的batch_size数量样本的数据集。

完~

MXNet中take函数的用法相关推荐

  1. 浅述numpy中argsort()函数的用法

    浅述python中argsort()函数的用法 由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在pyt ...

  2. C++中substr函数的用法

    C++中substr函数的用法 #include<string> #include<iostream> using namespace std; main() { string ...

  3. numpy中where函数的用法

    numpy中where函数的用法 numpy.where(condition,x,y)--若满足condition,输出x,否则输出y. 举例: 例1:一维数组 >>> a = np ...

  4. delphi中move函数的用法

    delphi中move函数的用法 -------------------------------------------------------------------------------- 20 ...

  5. SQL中object_id函数的用法

    SQL中object_id函数的用法 收藏  int object_id('objectname'); 此方法返回数据库对象标识号. 其中,参数objectname 表示要使用的对象,其数据类型为nc ...

  6. python remove函数_python中remove函数的用法是什么?

    python中remove函数的用法是什么? python中remove函数的用法: 描述 remove() 函数用于移除列表中某个值的第一个匹配项. 语法 remove()方法语法: list.re ...

  7. Delphi中 StrToIntDef函数的用法

    Delphi中 StrToIntDef函数的用法: 比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strto ...

  8. python中int函数的用法浅析_Python中int()函数的用法浅析

    int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builtin__ ...

  9. python中sorted函数的用法_Python3 中sorted() 函数的用法

    描述 sorted() 函数对所有可迭代的对象进行排序操作. 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象. key – ...

  10. oracle中的to_number,Oracle中to_number()函数的用法

    to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...

最新文章

  1. navicat 连接oracle
  2. java两个日期之间的日期_获取两个日期之间的日期形成一个集合
  3. java取number长度_Java中常用方法(NumberMath)
  4. 如何缩小码农和高手的差距
  5. 从Android到Java:如何从不同视角解决问题?
  6. python中wraps_【Python】Flask中@wraps的使用
  7. 查看Ubuntu系统的版本
  8. centos yum 安装mysql
  9. 编程猫获新一轮 3 亿融资:做好少儿编程教育基础设施!
  10. 服务器负载不高 响应慢_通俗易懂的讲透:负载均衡的原理
  11. VMware vSphere Storage Appliance (VSA) 5.1 群集部署
  12. mcs-51单片机CPU的内部结构及工作原理
  13. BlenderGIS:No ImageIO解决办法 天地图地图资源
  14. 如何进行Java学习
  15. CDS (W2) -- Features, Data, Text Processing
  16. 一个好的学习算法的网站
  17. 点亮LED-STM32电控学习笔记03
  18. element-plus ui表格表头筛选功能
  19. 专升本第十二讲 (影音娱乐)
  20. 论文笔记:Identifying Lung Cancer Risk Factors in the Elderly Using Deep Neural Network - Chen, Wu

热门文章

  1. java短信验证码功能发送的验证码如何校验_Java实现短信发送验证码功能
  2. 串口调试工具--SecureCRT的使用
  3. php 调用 百度句法分析,【原创源码】百度新版翻译API调用使用范例
  4. linux把ftp挂载成盘符,使用curlftpfs将ftp空间挂载到本地
  5. Infor CRM咨询服务市场市场报告-Infor CRM咨询服务销售额及预测
  6. 20201024——记录一下自己的前端工程师之路
  7. python自动翻译视频字幕_python利用google翻译方法实例(翻译字幕文件)
  8. 空间后方交会编程c语言,C语言空间后方交会源代码.doc
  9. android 显示大屏幕_android android如何将优化的体验带到大屏幕
  10. stm32F407中arr与psc以及pwm之间的关系