ss
2 min readSep 25, 2018

最近在寫TensorFlow, 寫到residul 後,有一堆要互相連接的convultion layer

會常常用到tf.concat, 我來筆記一下這到底代表什麼

官方的函式定義是

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

第一項就是你要輸入的值, 而第二項則是你要結合的維度, 第三項就是這個tensor的name

這樣有說跟沒說一樣, 我們來看看官方的例子

t1 = [[1, 2, 3], [4, 5, 6]] # 這邊是 [ 2, 3 ] 維度的listt2 = [[7, 8, 9], [10, 11, 12]] # 這邊是 [ 2, 3 ] 維度的listt3 = tf.concat([t1, t2], 0) # [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]t4 = tf.concat([t1, t2], 1) # [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]

這邊可以看到我們對第 0 維進行結合, 所以在 t1 , 跟 t2 的第 0 維元素都是 2, 故 [2, 3] , [2, 3] ==> [4, 3]
所以 t3 ==>[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]

同樣原理, 對第 1 維度進行結合 ,故
[2, 3] , [2, 3] ==> [2, 6]
t4 ==> [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]

記得以上都是對list做處理

ss
ss

No responses yet