MXNet中take函数的用法
这里先上一段官方文档中关于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函数的用法相关推荐
- 浅述numpy中argsort()函数的用法
浅述python中argsort()函数的用法 由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在pyt ...
- C++中substr函数的用法
C++中substr函数的用法 #include<string> #include<iostream> using namespace std; main() { string ...
- numpy中where函数的用法
numpy中where函数的用法 numpy.where(condition,x,y)--若满足condition,输出x,否则输出y. 举例: 例1:一维数组 >>> a = np ...
- delphi中move函数的用法
delphi中move函数的用法 -------------------------------------------------------------------------------- 20 ...
- SQL中object_id函数的用法
SQL中object_id函数的用法 收藏 int object_id('objectname'); 此方法返回数据库对象标识号. 其中,参数objectname 表示要使用的对象,其数据类型为nc ...
- python remove函数_python中remove函数的用法是什么?
python中remove函数的用法是什么? python中remove函数的用法: 描述 remove() 函数用于移除列表中某个值的第一个匹配项. 语法 remove()方法语法: list.re ...
- Delphi中 StrToIntDef函数的用法
Delphi中 StrToIntDef函数的用法: 比如我要判断一个文本框里输入的字符串能不能转换为integer类型,如果能,则返回转换后的整型数据,如果不能,则返回整数0,那么我就可以用strto ...
- python中int函数的用法浅析_Python中int()函数的用法浅析
int()是Python的一个内部函数 Python系统帮助里面是这么说的 >>> help(int) Help on class int in module __builtin__ ...
- python中sorted函数的用法_Python3 中sorted() 函数的用法
描述 sorted() 函数对所有可迭代的对象进行排序操作. 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象. key – ...
- oracle中的to_number,Oracle中to_number()函数的用法
to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...
最新文章
- navicat 连接oracle
- java两个日期之间的日期_获取两个日期之间的日期形成一个集合
- java取number长度_Java中常用方法(NumberMath)
- 如何缩小码农和高手的差距
- 从Android到Java:如何从不同视角解决问题?
- python中wraps_【Python】Flask中@wraps的使用
- 查看Ubuntu系统的版本
- centos yum 安装mysql
- 编程猫获新一轮 3 亿融资:做好少儿编程教育基础设施!
- 服务器负载不高 响应慢_通俗易懂的讲透:负载均衡的原理
- VMware vSphere Storage Appliance (VSA) 5.1 群集部署
- mcs-51单片机CPU的内部结构及工作原理
- BlenderGIS:No ImageIO解决办法 天地图地图资源
- 如何进行Java学习
- CDS (W2) -- Features, Data, Text Processing
- 一个好的学习算法的网站
- 点亮LED-STM32电控学习笔记03
- element-plus ui表格表头筛选功能
- 专升本第十二讲 (影音娱乐)
- 论文笔记:Identifying Lung Cancer Risk Factors in the Elderly Using Deep Neural Network - Chen, Wu
热门文章
- java短信验证码功能发送的验证码如何校验_Java实现短信发送验证码功能
- 串口调试工具--SecureCRT的使用
- php 调用 百度句法分析,【原创源码】百度新版翻译API调用使用范例
- linux把ftp挂载成盘符,使用curlftpfs将ftp空间挂载到本地
- Infor CRM咨询服务市场市场报告-Infor CRM咨询服务销售额及预测
- 20201024——记录一下自己的前端工程师之路
- python自动翻译视频字幕_python利用google翻译方法实例(翻译字幕文件)
- 空间后方交会编程c语言,C语言空间后方交会源代码.doc
- android 显示大屏幕_android android如何将优化的体验带到大屏幕
- stm32F407中arr与psc以及pwm之间的关系