深度学习中,我们经常要使用的技术之一,连接连个通道作为下一个网络层的输入,那么在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]]
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]]]
参考资料:
https://www.tensorflow.org/versions/r0.8/api_docs/python/array_ops.html#concat