张量:它是什么,它与向量有何不同?

Tensor: what is it and how is it different from a vector?

我是机器学习的初学者,我正面临这个问题,请提供简单的示例或内容,以便我能以最好的方式理解。

如果你问的是数学对象,那么张量就是保存值的东西,某种 table 或数组。张量有一个顺序,指示这些值在多少轴上排列。

例如:

  • 0 阶张量只是一个标量。
  • 1 阶张量是向量。每个元素由一个索引编号。
  • 2阶张量是矩阵。每个元素都有两个索引,例如行和列。

张量=多维数组

在机器学习文献中,张量只是多维数组的同义词:

Tensors, also known as multidimensional arrays, are generalizations of matrices to higher orders and are useful data representation architectures.

因此 1.d 张量是“vector/tuple”和 2.d。张量是一个“matrix/2.d.array”.

实施

在特定的库中,该术语可能仅限于数值数组:

Theano is a Python library that allows you to define, optimize, and efficiently evaluate mathematical expressions involving multi-dimensional arrays.

或包含更广泛数据类型的那些:

Tensor - The primary data structure in TensorFlow programs. Tensors are N-dimensional (where N could be very large) data structures, most commonly scalars, vectors, or matrices. The elements of a Tensor can hold integer, floating-point, or string values.

词源

张量在数学中有一个 more specific 的含义,作为向量空间之间的多线性映射的抽象,但给定一个固定的基础,这样的映射可以 表示为 多维数组,机器学习术语就是从这种用法中得名的。