目录
绪论
在深度学习中,我们通常会频繁地对数据进行操作。作为深度学习的基础,本节将介绍如何对CPU内存中的数据的基本操作。
MXNet中,NDArray是一个类,也是存储和变换数据的主要工具。NDArray和NumPy的多维数组非常类似。然而,NDArray提供GPU计算和自动求梯度等更多功能,这些使NDArray更加适合深度学习。
前言
这里作者是使用juputer notebook来学习,对比于pycharm和它的控制台来说,对于较大型的项目用pycharm可以实现分文件管理,pycharm的控制台适合运行单行代码,jupyter notebook因为对于单个模块运行之后都会有一个输出直观看到结果;
2.2.1. 创建NDArray
首先从MXNet导入ndarray模块。这里的nd是ndarray的缩写形式。
from mxnet import nd
然后我们用arange函数创建一个行向量。
x = nd.arange(12)
#这里x的作用相当于print(x)
x
Out[2]: [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.] <NDArray 12 @cpu(0)> 可以看到nd.arange创建了一个从0开始的12个连续整数,类型 NDArray ,长度 12,创建在cpu内存上
shape属性来获取NDArray实例的形状。
x.shape
Out[3]: (12,)
size属性得到NDArray实例中元素(element)的总数。
x.size
Out[4]:
12
reshape函数把行向量x的形状改为(3, 4),也就是一个3行4列的矩阵,并记作X。(注意前面是小写x,后面是大写X)
X = x.reshape((3, 4)) #这里X的作用相当于print(X) X
Out[5]:
[[ 0. 1. 2. 3.] [ 4. 5. 6. 7.] [ 8. 9. 10. 11.]]
小技巧:上面x.reshape((3, 4))也可写成x.reshape((-1, 4))或x.reshape((3, -1))。由于x的元素个数是已知的12,这里的-1是能够通过元素个数和其他维度的大小推断出来的。
接下来,创建一个各元素为0,形状为(2, 3, 4)的张量。之前创建的向量和矩阵都是特殊的张量。
nd.zeros((2, 3, 4))
Out[6]:
[[[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]] [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]]]
可以理解成2层,每一层都是3*4的矩阵。
类似地,我们可以创建各元素为1的张量。
nd.ones((3, 4))
Out[7]:
[[1. 1. 1. 1.] [1. 1. 1. 1.] [1. 1. 1. 1.]]
我们也可以通过Python的列表(list
3568



被折叠的 条评论
为什么被折叠?



