【深度学习】张量

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011240016/article/details/85147468

张量是一个数据容器,包含的数据是数值数据。矩阵是二维张量,而张量则是矩阵向任意维度的推广。张量的维度(dimension)通常叫作轴(axis)。

标量

只有一个数字的张量叫作标量,也叫0维张量。我们可以通过ndim来查看张量的维度,或者说轴的个数。

向量

一维张量,只有一个轴。

x = np.array([1,2,3,4,5])
x.ndim # 1

这里需要区分一个概念是:5维向量和5维张量的区别。

向量有多少个元素就叫多少维向量,但是张量的维度只看轴数。每个轴的维度是任意的。

矩阵

2D张量,这是由向量组成的数组。矩阵有两个轴,常常称之为行和列。第一个轴的元素叫作行,第二个轴的元素叫作列。

这里需要记住一个案例:

x = np.array([[0.1, 0.8, 0.1], [0.3, 0.1, 0.6], [0.2, 0.5, 0.3], [0.8, 0.1, 0.1]])
y = np.argmax(x, axis=1) # array([1, 2, 1, 0])

import numpy as np
x = np.array([[0.1, 0.8, 0.1], [0.3, 0.1, 0.6], [0.2, 0.5, 0.3], [0.8, 0.1, 0.1]])
y = np.argmax(x, axis=0) # array([3, 0, 1])

对于代码里用到的东西,灵活运用这个案例是更好的选择,如果按照第二个轴来选择,则是选出每行的最值,按照第一个轴来选,选出的是每列的最值。

在矩阵中,我们可以抛开中括号这种束缚,直接从一块数据中按照行和列来看即可。

3D张量以及更高维张量

多个矩阵组合在一起可以变成3D张量,再将多个3D张量组合成一个数组,可以创建一个4D张量,等等。

在深度学习中,一般是0D到4D的张量,处理视频数据会遇到5D张量。

END.

参考:

《Deep Learning with Python》

猜你喜欢

转载自blog.csdn.net/u011240016/article/details/85147468