當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.concat用法及代碼示例


沿一維連接張量。

用法

tf.concat(
    values, axis, name='concat'
)

參數

  • values Tensor 對象的列表或單個 Tensor
  • axis 0-D int32 Tensor 。要連接的維度。必須在 [-rank(values), rank(values)) 範圍內。與 Python 中一樣,軸的索引是從 0 開始的。 [0, rank(values)) 範圍內的正軸指的是axis -th 維度。負軸是指axis + rank(values) -th 維度。
  • name 操作的名稱(可選)。

返回

  • 由輸入張量串聯產生的Tensor

另見tf.tiletf.stacktf.repeat

沿維度 axis 連接張量列表 values 。如果 values[i].shape = [D0, D1, ... Daxis(i), ...Dn] ,則連接結果具有形狀

[D0, D1, ... Raxis, ...Dn]

其中

Raxis = sum(Daxis(i))

也就是說,來自輸入張量的數據沿 axis 維度連接。

輸入張量的維數必須匹配,除axis之外的所有維數必須相等。

例如:

t1 = [[1, 2, 3], [4, 5, 6]]
t2 = [[7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], 0)
<tf.Tensor:shape=(4, 3), dtype=int32, numpy=
array([[ 1,  2,  3],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]], dtype=int32)>
tf.concat([t1, t2], 1)
<tf.Tensor:shape=(2, 6), dtype=int32, numpy=
array([[ 1,  2,  3,  7,  8,  9],
       [ 4,  5,  6, 10, 11, 12]], dtype=int32)>

在 Python 中,axis 也可以是負數。負數 axis 被解釋為從排名末尾開始計數,即 axis + rank(values) -th 維度。

例如:

t1 = [[[1, 2], [2, 3]], [[4, 4], [5, 3]]]
t2 = [[[7, 4], [8, 4]], [[2, 10], [15, 11]]]
tf.concat([t1, t2], -1)
<tf.Tensor:shape=(2, 2, 4), dtype=int32, numpy=
  array([[[ 1,  2,  7,  4],
          [ 2,  3,  8,  4]],
         [[ 4,  4,  2, 10],
          [ 5,  3, 15, 11]]], dtype=int32)>

注意:如果您沿新軸連接,請考慮使用堆棧。例如:

tf.concat([tf.expand_dims(t, axis) for t in tensors], axis)

可以改寫為

tf.stack(tensors, axis=axis)

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.concat。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。