动手学mxnet系列之NDArray

在mxnet中,NDArray是所有运算的核心数据结构,mxnet中的所有数据均使用NDArray进行表示,NDarray有点类似于numpy中的ndarray,操作上面也与numpy很相似,但是NDArray提供了numpy.ndarray所不具备的操作,比如:GPU,CPU的切换,自动求梯度的运算等等,这也是为什么mxnet要重新封装一个NDArray的原因。

NDArray就好比盖房子的砖,砖有了自然可以盖房子了,所以利用NDArray你便可以实现所有的深度学习模型了,只是深度学习日新月异,如果每个模型都从NDArray开始写,那当然是比较麻烦的,所以MXnet或者gluon帮我们封装了一些函数可以直接使用,接下来我们都会逐一的了解,那么这一节我们先来仔细学习一下mxnet的NDArray:

特别说明:下面的操作只是NDArray的一些基本操作,
获取更多的操作还请查找MXNet文档:https://mxnet.incubator.apache.org/api/python/ndarray/ndarray.html

当然,我希望你可以跟我一起来敲如下的代码而不是看一遍就过去了,事实证明,敲一遍的效果会好很多

在mxnet中,使用NDArray需要引用nd包(nd是ndarray的缩写),如下:

from mxnet import nd

在引入nd包之后就可以愉快的使用NDArry了。

特别说明,下面代码中 ‘->’ 代表的是输出结果

1. 定义x为一个序列,这里与numpy一致,不同的是,这里返回的每个元素类型都是ndarray

x = nd.arange(12)   -> [0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.]

2. 当然我们可以打印出ndarray的shape以及size,这里的shape和size不要混淆了

x.shape      ->  (12 ,)
x.size       ->  12
x.context    -> x在CPU还是在GPU上

x.dtype      -> data type,即每个元素的类型
## 当然,我们也可以改变元素的类型
x = x.astype(‘float32’) ## 利用astype便可以改变元素的类型了。


3. 那么如果我们想要构建一个二维矩阵怎么办呢?可以考虑reshape函数

x = nd.arange(12)
x.reshape(shape=(3,4))
# 当然你同样可以省略shape参数,直接这样写:
x.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值