Tensorflow的名字直接来源于它的核心数据结构:张量。
张量的概念来源于线性代数,表示一个多维数组,张量中的元素具有相同的数据类型。
Tensorflow中,所有的计算都涉及到张量,张量可以是输入数据,或者计算结果。
TensorFlow中的各种操作,如加权求和,激活函数等,都被编排成一个图,称为计算图。这样,一个神经网络就可以用一个计算图来表示。
张量表示的输入数据传递给计算图,计算图处理后,也以张量的方式输出数据。
示例
如果我们有一个2×3矩阵:
TensorFlow中,将这个矩阵表示为张量:
[[1, 2, 3],
[4, 5, 6]]
张量的阶
张量的阶(rank)是张量的维数。
阶为1的张量等价于向量,阶为2的向量等价于矩阵。对于一个阶为2的张量,通过t[i, j]就能获取它的每个元素。对于一个阶为3的张量,需要通过t[i, j, k]进行寻址,以此类推。
张量的形状
张量的形状描述了张量每个维度中的元素数量。就是说一个张量有几行几列,例如一个形状[2,3]
,即2行3列的张量:
[[1 2 3]
[3 4 5]]
张量的数据类型
一个张量具有一个数据类型,允许的数据类型如下:
数据类型 | Python 类型 | 描述 |
---|---|---|
DT_FLOAT |
tf.float32 |
32 位浮点数. |
DT_DOUBLE |
tf.float64 |
64 位浮点数. |
DT_INT64 |
tf.int64 |
64 位有符号整型. |
DT_INT32 |
tf.int32 |
32 位有符号整型. |
DT_INT16 |
tf.int16 |
16 位有符号整型. |
DT_INT8 |
tf.int8 |
8 位有符号整型. |
DT_UINT8 |
tf.uint8 |
8 位无符号整型. |
DT_STRING |
tf.string |
可变长度的字节数组.每一个张量元素都是一个字节数组. |
DT_BOOL |
tf.bool |
布尔型. |
DT_COMPLEX64 |
tf.complex64 |
由两个32位浮点数组成的复数:实数和虚数. |
DT_QINT32 |
tf.qint32 |
用于量化Ops的32位有符号整型. |
DT_QINT8 |
tf.qint8 |
用于量化Ops的8位有符号整型. |
DT_QUINT8 |
tf.quint8 |
用于量化Ops的8位无符号整型. |
本文来自博客园,作者:大码王,转载请注明原文链接:https://www.cnblogs.com/huanghanyu/