TensorFlow的tf.concat實(shí)例詳細(xì)介紹

tf.concat函數(shù):函數(shù)功能比較簡單,主要用于連接兩個(gè)數(shù)組

參數(shù):
values:需要連接的數(shù)組,注意數(shù)組的維度應(yīng)該一致
axis:從哪個(gè)維度來連接數(shù)組

例子:

1.一維數(shù)組

 import tensorflow as tf

 if __name__ == "__main__":
    a = [1,2,3]
    b = [4,5,6]
    c = tf.concat([a,b],0)
    sess = tf.InteractiveSession()
    print(sess.run(c)) #[1 2 3 4 5 6]

注意:axis參數(shù)不能超過數(shù)組的維度。如果超過數(shù)組的維度,如下:

  c = tf.concat([a,b],1)

則會報(bào),ValueError: Shape must be at least rank 2 but is rank 1 for 'concat',意思是數(shù)組至少是二維,axis才能為1。

2.二維數(shù)組

  a = [[1,1],[2,2],[3,3]]
  b = [[4,4],[5,5],[6,6]]
  c = tf.concat([a,b],0)
  print(sess.run(c))
"""
[[1 1]
 [2 2]
 [3 3]
 [4 4]
 [5 5]
 [6 6]]
"""
  c = tf.concat([a,b],1) #等價(jià)于tf.concat([a,b],-1)
  print(sess.run(c))
"""
[[1 1 4 4]
 [2 2 5 5]
 [3 3 6 6]]
"""

3.三維數(shù)組

  a = [[[1,1],[2,2]],[[3,3],[4,4]]]
  b = [[[5,5]],[[6,6]]]

  c = tf.concat([a,b],1)
  print(sess.run(c))
"""
[[[1 1]
  [2 2]
  [5 5]]

 [[3 3]
  [4 4]
  [6 6]]]
"""
  1. a = [[1, 2], [3, 4]]
    b = [[5, 6]]
    c = np.concatenate((a, b), axis=None)
    """
     [[1,2,3,4,5,6]]
    """
    

5.如何來判斷數(shù)組是否在該個(gè)維度上的shape是相同的呢?
其實(shí)很簡單,我們根據(jù)tf.concat的axis參數(shù)來去數(shù)組的[],0表示去掉最外面的一層,1去掉兩層,以此類推,下面舉例說明一下。
如:最后一個(gè)例子中的c = tf.concat([a,b],1),我們先將a去掉最外面兩層[],變成了[1,1],[2,2]和[3,3],[4,4]],然后再將b去掉最外面兩層[],變成了[5,5]和[6,6],此時(shí)再進(jìn)行concat,可以發(fā)現(xiàn)此時(shí)的shape是相等的。
參考:
https://blog.csdn.net/sinat_29957455/article/details/86100641

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容