deepsort python实现_python

2.2 神经网络的数据表示

在先前的例子中,我们从存储在多维Numpy数组中的数据开始,这些数据也称作张量。一般而言,所有现在的机器学习系统使用张量作为它们基础数据结构。张量是这个领域的基础——它们如此基础,因此谷歌的TensorFlow以此命名。所以什么是张量?

在它的核心概念中,张量是数据的一个容器——几乎总是数字化的数据。所以,它是数字的一个容器。你可能已经熟悉了2D张量的标准:张量是将矩阵推广到任意数量的维度(注意对于文中的张量来说,维度叫做轴)。

deepsort python实现_标量_02

 2.2.1 标量

一种只包含了一个数字的张量叫做标量(或者说标量型张量,或0维张量,或者0D张量)。在Numpy中,一个float32位或float64位数字是一个标量张量(或者标量数组)。你能够通过ndim属性来展示Numpy张量的轴的数量;一个标量张量有0个轴(ndim = 0)。一个张量的轴的数量也叫做等级。这是一个Numpy标量:

(略)

 

deepsort python实现_人工智能_03

2.2.2 向量(1D 张量)

一个数字的数组叫做向量,或1D张量。1D张量据说恰有一个轴。接下来的是Numpy的向量:

(略)

deepsort python实现_数据结构与算法_04

2.2.3 矩阵(2D 张量)

一个向量的数组叫做矩阵,或者叫做2D张量。一个数组有两个轴(经常被说成行和列)。你能从表面上解释说矩阵像是一个由数字组成的长方形的网格。这是Numpy矩阵:

deepsort python实现_python_05

(略)

第一个轴的条目叫做行,并且第二个轴的条目叫做列。在先前的例子中,[5, 78, 2, 34, 0]是第一行,而[5, 6, 7]是第一列。

deepsort python实现_python_06

2.2.4 3D张量和更高维度张量

如果你将这样的矩阵挑选入新数组,你得到一个3D张量,一个你可以在外表上形容其为数据立方体。以下是Numpy3D张量:

(略)

deepsort python实现_标量_07

2.2.5 关键属性

一个张量被3个关键属性所定义:

轴的数量(等级)——例如,3D张量有3个轴,而矩阵有两个轴。这在python库如Numpy中也叫做张量的ndim。

shape——这是一个整数的tuple(译者:这在python中为一个常量数组,里面的数据通常不可更改),形容了每个轴的张量规模大小。例如,先前矩阵的例子有shape[3, 5],而3D张量的例子中有shape[3, 3, 5]。一个向量里有有着单一元素的shape,像是[5, ],然而一个标量里仅有空shape。

Data type(在python库中常称为dtype)——这是中包含在张量里的数据类型;例如,一个张量类型能叫做float32,uint8,float64,等等。在很少的场合,你可能看到一个char张量。但注意文字的张量不存在在Numpy(或者大多数库中),因为张量存在于预分配的连续的内存段中:字符串,是可变长度的,所以应该先排除使用这个实现。