数据操作
N维数组样例
- N维数组是机器学习和神经网络的主要数据结构
- 0-d,是标量,例如1.0,可能表示一个类别
- 1-d,是向量,例如[1.0, 2.7, 3.4],可能表示一个特征向量
- 2-d,是矩阵,例如
[[1.0, 2.7, 3.4]
[5.0, 0.2, 4.6]
[4.3, 8.5, 0.2]]
这可以是一个样本-特征矩阵,三个样本,每个样本3个特征 - 3-d,三维数组,例如RGB图片(宽×高×通道)
[[[1.0, 2.7, 3.4]
[5.0, 0.2, 4.6]
[4.3, 8.5, 0.2]]
[[1.0, 2.7, 3.4]
[5.0, 0.2, 4.6]
[4.3, 8.5, 0.2]]] - 4-d,可以是一个RGB批量,一个batch(批量大小×宽×高×通道)
- 5-d,一个视频批量(批量大小×时间×宽×高×通道)
创建数组
创建数组需要
- 形状:例如3×4矩阵
- 每个元素的数据类型:例如32位浮点数
- 每个元素的值,例如全0,或者随机数
访问元素
Q&A:
reshape的问题?
reshape是原地操作,比如
a = torch.arange(12)
b = a.reshape((3,4))
b[:] = 2
a
tensor和array的关系?
tensor是数学上张量的概念,array是数组