將TensorFlow張量沿一個(gè)維度串聯(lián)

2018-09-12 16:15 更新

tf.concat

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

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

參見指南:張量變換>張量的分割和連接

將張量沿一個(gè)維度串聯(lián).

將張量值的列表與維度軸串聯(lián)在一起.如果 values[i].shape = [D0, D1, ... Daxis(i), ...Dn],則連接結(jié)果有形狀.

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

當(dāng)

Raxis = sum(Daxis(i))

也就是說,輸入張量的數(shù)據(jù)將沿軸維度連接.
輸入張量的維數(shù)必須匹配, 并且除坐標(biāo)軸外的所有維度必須相等.

例如:

T1 =  [ [ 1 , 2 , 3 ] , [ 4 , 5 , 6 ] ] 
T2 =  [ [ 7 , 8 , 9 ] , [ 10 , 11 , 12 ] ] 
tf.concat([T1 ,T2] ,0) == >  [[1 , 2 ,3 ],[4 ,5 ,6],[7 ,8 ,9],[10 ,11,12]] 
tf.concat([T1 ,T2] ,1) == >  [[ 1 ,2 ,3 ,7 ,8 ,9 ],[4 ,5 ,6,10 ,11 ,12]]

#張量 t3 的形狀[2,3] 
#張量 t4 的形狀[2,3] 
tf.shape(tf.concat([ t3 , t4 ] , 0 )) == >  [ 4 , 3 ] 
tf.shape( tf.concat([t3 ,t4 ] , 1 )) == >  [ 2 , 6 ]
注意:如果沿著新軸連接,請(qǐng)考慮使用堆棧.例如:
tf.concat ([ tf.expand_dims (t ,axis) for t in tensors] ,axis)

可以重寫為

tf.stack(tensors,axis = axis)

ARGS:

  • values:張量對(duì)象或單個(gè)張量列表.
  • axis:0 維 int32 張量,要連接的維度.
  • name:操作的名稱(可選).

返回:

由輸入張量的連接引起的張量.


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)