学习TensorFlow,concat连接两个(或多个)通道

时间:2020-12-26 18:26:02

深度学习中,我们经常要使用的技术之一,连接连个通道作为下一个网络层的输入,那么在tensorflow怎么来实现呢?

我查看了tensorflow的API,找到了这个函数:

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

concat_dim是tensor连接的方向(维度),values是要连接的tensor链表,name是操作名。cancat_dim维度可以不一样,其他维度的尺寸必须一样。下面举两个例子:两个二维tensor连接,两个三维tensor连接。

1 两个二维tensor连接:

concat_dim:0表示行,1表示列

t1 = [[1,2,3], [4,5,6]]

t2 = [[7,8,9], [10,11,12]]

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

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

学习TensorFlow,concat连接两个(或多个)通道

2 两个三维tensor连接

concat_dim:0表示纵向,1表示行,2表示列

t1 = [[[1, 1, 1],[2, 2, 2]],[[3, 3, 3],[4, 4, 4]]]

t2 = [[[5, 5, 5],[6, 6, 6]],[[7, 7, 7],[8, 8, 8]]]

学习TensorFlow,concat连接两个(或多个)通道

参考资料:

https://www.tensorflow.org/versions/r0.8/api_docs/python/array_ops.html#concat