1. 张量是 TensorFlow 中多维数组的载体,用 Tensor 对象实现
  2. 在 CPU 环境下,张量和 NumPy 数组是共享同一段内存的,只是 tensorflow 和 numpy 各自采用不同的方式读取它。
  3. 多维张量在内存中是以一维数组的方式连续存储的

改变张量的形状: tf.reshape(tensor, shape) 16151892314749

创建时,修改维度: 16151893597593

轴与维度

轴可以是负数,维数较多,需要操作后几维时,用负数方便。 16151894651299

增加和删除维度 增加的这个维度上,长度为 1:tf.expand_dims(input, axis) 删除维度,只能删除长度为 1 的维度(不指定轴,删除所有维度为 1 的轴):tf.squeeze(input, axis) 增加和删除维度,只是改变了张量的视图,不会改变张量的存储。 16151901304723

交换维度

tf.transpose(a, perm),perm 为张量中各个轴的顺序 对于二维张量,就是矩阵的转置。 16151931641917

交换维度,不仅改变了张量的视图,同时也改变了张量的存储顺序

拼接与分割

图像的分割与拼接,改变了张量的视图,张量的存储顺序并没有改变。

  1. 拼接张量,拼接不会产生新的维度:tf.concat(tesnsors,axis), 16151947573478

  2. 分割张量,将一个张量拆分成多个张量,分割后维度不变。 tf.split(value, num_or_size_splits, axis=0) value:张量 num_or_size_splits:分割方案,单个数表示等长切割份数,序列时,就是每份 2: 分割成 2 个张量 [1:2:1]: 就表示分割成三个张量,长度分别是 1,21 16151953184159

堆叠和分解

堆叠张量:tf.stack(values,axis) 合并张量时,创建一个新的维度。

values: 堆叠的多个张量 axis: 指定插入新的维度的位置

16151956288185

分解张量:tf.unstack(values,axis) 将张量分解为多个张量;分解后得到的每个张量,和原来的张量相比,维数都少了一维。

16152057498729