TensorFlow扩展和压缩tensor维度

tf.squeeze函数——从张量形状中移除大小为1的维度.

函数原型

squeeze(input,axis=None,name=None,squeeze_dims=None)

给定一个张量 input,该操作返回一个与已经移除的所有大小为1的维度具有相同类型的张量.如果您不想删除所有大小为1的维度,则可以通过指定 axis 来删除特定的大小为1的维度.

如本例所示:

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
tf.shape(tf.squeeze(t))  # [2, 3]

或者,要删除特定的大小为1的维度:

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
tf.shape(tf.squeeze(t, [2, 4]))  # [1, 2, 3, 1]

函数参数:

  • input:A Tensor.该input挤.
  • axis:一个可选列表ints.默认为[].如果指定,只能挤压列出的尺寸.维度索引从0开始.压缩非1的维度是错误的.必须在范围内[-rank(input), rank(input)).
  • name:操作的名称(可选).
  • squeeze_dims:现在是轴的已弃用的关键字参数.

函数返回值:

一Tensor.与.类型相同input.包含与之相同的数据input,但删除了一个或多个尺寸为1的尺寸.

tf.expand_dims——在张量形状中插入 1 的维度.

函数原型

expand_dims(input,axis=None,name=None,dim=None)

给定一个张量 input,此操作在 input 的形状的维度索引轴中插入1的维度.该维度的索引轴从零开始;如果为该坐标轴指定负数,它将从末尾向后计数.

如果您想将批维度添加到单个元素,此操作非常有用.例如,如果您有一个形状为 [height, width, channels] 的单一图像,您可以将它与 expand_dims(image, 0) 进行批处理,这将生成形状 [1, height, width, channels].

参数:

  • input:是一个张量.
  • axis:0 维(标量)指定要在其上展开 input 形状的维度索引.
  • name:output 张量的名称.
  • dim:0 维(标量).相当于 axis,不推荐使用.

返回值:

与 input 具有相同数据的张量,但其形状具有附加的大小为1维度.

你可能感兴趣的:(tensorflow)