一、理解深度学习中的数据结构(数据存储结构)
1、0维的数据是一个数,常用来表示一个类别
2、1维的数据表示一个特征向量,不同的列代表不同的特征。
3、2维的数据是一个样本,每一行是一个特征向量,不同的列表示不同特征。
4、3维的数据常用来表示图像,3个维度分别是 宽 x 高 x 通道
5、4维的数据常用来表示批量图像,4个维度分别是 图像数 x 宽 x 高 x 通道
6、5维的数据常用来表示视频数据,5个维度分别是 视频 x 时间 x 宽 x 高 x 通道数
二、数据操作的实现
在pytorch中,操作的数据对象是tensor(张量)
1、通过shape属性访问张量的形状,通过numel()函数访问张量的元素个数
2、多个张量的连接
操作对象是2维数据: 在第0维连接:堆叠行,其实是扩充特征向量的数量 在第1维连接:堆叠列,其实是扩充特征向量中的特征数
操作对象是三维数据: 连接的维度 2,1,0 分别扩充 宽(列)、高(行)、通道
3、广播机制
简单来说,广播机制使得维度不同的张量能够一起运算,它会在运算前会把张量的维度在逻辑上扩充到相同。举个实例理解广播机制,X是3行1列的张量,Y是1行2列的张量,X+Y运算的过程是:X中每一列都被复制,变成3行2列,Y的每一行都被复制,变成3行2列,最后X和Y相加。
4、tensor 转换成 numpy
使用X.numpy()函数
5、tensor 转换成 python标量
法一:使用X.item()函数 法二:使用内置函数,如float(X), int(X)函数
三、numpy 中ndarray 和 pytorch中 tensor 的区别
ndarray 和 tensor 数据在形式上很相似,但ndarray 仅是在计算机中的一个概念,而tensor 还可以是数学上的概念。
|