天天看點

concatenate與add

ResNet更多采用的add操作:

add是描述圖像的特征下的資訊量增多了,但是描述圖像的次元本身并沒有增加,隻是每一維下的資訊量在增加,這顯然是對最終的圖像的分類是有益的。

DenseNet用的是concatenate操作:

concatenate操作用于将特征聯合,多個卷積特征提取架構提取的特征融合或者是将輸出層的資訊進行融合。concatenate是通道數的合并,也就是說描述圖像本身的特征增加了,而每一特征下的資訊是沒有增加。而add層更像是資訊之間的疊加。

Resnet是做值的疊加,通道數是不變的,DenseNet是做通道的合并。

add無訓練參數。

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]]

注意:實際上是次元的一個聯合,axis=0表示列維,1表示行維,沿着通道次元連接配接兩個張量。另一個sparse_concate則是關于稀疏矩陣的級聯。

繼續閱讀