什么是张量数据结构?

在 TensorFlow 中,张量(tensor)是一种多维数组的数据结构,通常用于表示输入数据、模型权重、中间计算结果等。它是 TensorFlow 中最基本的数据类型,也是算法计算的基本对象。张量可以具有不同的维度(rank)、形状(shape)和数据类型(dtype)。

张量的维度(rank)

张量的维度(rank)表示张量的秩(rank),即张量中的轴(axis)的数量。一个张量可以是 0 维(标量)、1 维(向量)、2 维(矩阵)或更高维的数组。例如,一个 0 维张量是一个单独的数值,一个 1 维张量是一个数组,一个 2 维张量是一个矩阵。在 TensorFlow 中,可以通过函数 tf.rank(tensor) 来获取张量的维度。

张量的形状(shape)

张量的形状(shape)表示张量在每个维度上的大小。例如,一个维度为 (2, 3) 的张量表示一个 2 行 3 列的矩阵,一个维度为 (3,) 的张量表示一个包含 3 个元素的数组。在 TensorFlow 中,可以通过属性 tensor.shape 获取张量的形状。可以使用 tf.reshape(tensor, new_shape) 函数改变张量的形状,但是新形状的维度大小必须与原来的维度大小兼容。

张量的数据类型(dtype)

张量的数据类型(dtype)表示张量元素的数据类型。TensorFlow 支持多种数据类型,如 tf.float32、tf.int32 等。不同的数据类型在内存占用和计算精度方面有所不同。在 TensorFlow 中,可以通过属性 tensor.dtype 获取张量的数据类型。可以使用 tf.cast(tensor, new_dtype) 函数将张量转换为指定的数据类型。