张量是矩阵向任意维度的推广[注意,张量的维度(dimension)通常叫做轴(axis)].

不要把 5D 向量和 5D 张量弄混! 5D 向量只有一个轴,沿着轴有 5 个维度,而 5D 张量有 5 个轴(沿着每个轴可能有任意个维度)。

 

 

2.2.7 数据批量的概念
通常来说,深度学习中所有数据张量的第一个轴(0 轴,因为索引从 0 开始)都是样本轴(samples axis,有时也叫样本维度)。在 MNIST 的例子中,样本就是数字图像。

此外,深度学习模型不会同时处理整个数据集,而是将数据拆分成小批量。具体来看,下面是 MNIST 数据集的一个批量,批量大小为 128。
batch = train_images[:128]
然后是下一个批量。
batch = train_images[128:256]
然后是第 n 个批量。
batch = train_images[128 * n:128 * (n + 1)]
对于这种批量张量,第一个轴(0 轴)叫作批量轴(batch axis)或批量维度(batch dimension)
在使用 Keras 和其他深度学习库时,你会经常遇到这个术语。

 

>>> x = np.array([[[5, 78, 2, 34, 0],
 [6, 79, 3, 35, 1],
 [7, 80, 4, 36, 2]],
 [[5, 78, 2, 34, 0],
 [6, 79, 3, 35, 1],
 [7, 80, 4, 36, 2]],
 [[5, 78, 2, 34, 0],
 [6, 79, 3, 35, 1],
 [7, 80, 4, 36, 2]]])
>>> x.ndim 
3


将多个 3D 张量(3D张量中每个元素是二维矩阵)组合成一个数组,可以创建一个 4D 张量,以此类推。深度学习处理的一般
是 0D 到 4D 的张量,但处理视频数据时可能会遇到 5D 张量。

 

 


2.2.8 现实世界中的数据张量
我们用几个你未来会遇到的示例来具体介绍数据张量。你需要处理的数据几乎总是以下类
别之一。
向量数据:2D 张量,形状为 (samples, features)。
时间序列数据或序列数据:3D 张量,形状为 (samples, timesteps, features)。
图像:4D 张量,形状为 (samples, height, width, channels) 或 (samples, channels, 
height, width)。
视频:5D 张量,形状为 (samples, frames, height, width, channels) 或 (samples, 
frames, channels, height, width)。

 

 

2.2.11 图像数据
图像通常具有三个维度:高度、宽度和颜色深度。虽然灰度图像(比如 MNIST 数字图像)只有一个颜色通道,因此可以保存在 2D 张量中,但按照惯例,图像张量始终都是 3D 张量,灰度图像的彩色通道只有一维。因此,如果图像大小为 256×256,那么 128 张灰度图像组成的批量可以保存在一个形状为 (128, 256, 256, 1) 的张量中,而 128 张彩色图像组成的批量则可以保存在一个形状为 (128, 256, 256, 3) 的张量中(见图 2-4)。

第2章-神经网络的数学基础(笔记)

图像张量的形状有两种约定:

通道在后(channels-last)的约定(在 TensorFlow 中使用)和通道在前(channels-first)的约定(在 Theano 中使用)。

Google 的 TensorFlow 机器学习框架将颜色深度轴放在最后:(samples, height, width, color_depth)。

与此相反,Theano将图像深度轴放在批量轴之后:(samples, color_depth, height, width)。

如果采用 Theano 约定,前面的两个例子将变成 (128, 1, 256, 256) 和 (128, 3, 256, 256)。
Keras 框架同时支持这两种格式。

相关文章:

  • 2021-06-02
  • 2021-08-21
  • 2021-11-23
  • 2021-12-22
  • 2022-01-12
  • 2021-04-07
  • 2021-04-13
猜你喜欢
  • 2021-05-15
  • 2021-11-13
  • 2022-12-23
  • 2022-01-18
  • 2021-10-30
  • 2021-06-22
相关资源
相似解决方案