如何在TensorFlow張量形狀中插入維度

2018-10-16 17:41 更新

tf.expand_dims

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

定義在:tensorflow/python/ops/array_ops.py

參見指南:張量變換>形狀的確定與改變

在張量形狀中插入 1 的維度.

給定一個張量 input,此操作在 input 的形狀的維度索引軸中插入1的維度.該維度的索引軸從零開始;如果為該坐標(biāo)軸指定負數(shù),它將從末尾向后計數(shù).

如果您想將批維度添加到單個元素,此操作非常有用.例如,如果您有一個形狀為 [height, width, channels] 的單一圖像,您可以將它與 expand_dims(image, 0) 進行批處理,這將生成形狀 [1, height, width, channels].

以下是其他的例子:

# 't' is a tensor of shape [2]
shape(expand_dims(t, 0)) ==> [1, 2]
shape(expand_dims(t, 1)) ==> [2, 1]
shape(expand_dims(t, -1)) ==> [2, 1]

# 't2' is a tensor of shape [2, 3, 5]
shape(expand_dims(t2, 0)) ==> [1, 2, 3, 5]
shape(expand_dims(t2, 2)) ==> [2, 3, 1, 5]
shape(expand_dims(t2, 3)) ==> [2, 3, 5, 1]

上述操作要求:

-1-input.dims() <= dim <= input.dims()

該操作與 squeeze() 有關(guān),它刪除大小為1的維度.

參數(shù):

  • input:是一個張量.
  • axis:0 維(標(biāo)量)指定要在其上展開 input 形狀的維度索引.
  • name:output 張量的名稱.
  • dim:0 維(標(biāo)量).相當(dāng)于 axis,不推薦使用.

返回值:

與 input 具有相同數(shù)據(jù)的張量,但其形狀具有附加的大小為1維度.

注意:

  • ValueError:如果指定了 dim 和 axis.


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號