深度学习中,经常要使用的技术之一,连接多个通道作为下一个网络层的输入。
tf.concat(concat_dim, values, name='concat')
concat_dim是tensor 连接的方向(维度),values 是要连接的tensor 链表,name是操作名。concat_dim维度可以不一样,其他维度的尺寸必须一样。
1. 两个二维tensor连接
concat_dim: 0表示行,1表示列
#!/user/bin/env python
# coding=utf-8
import tensorflow as tf
t1=[[1,2,3],[4,5,6]]
t2=[[7,8,9],[10,11,12]]
c1=tf.concat(0,[t1,t2])
c2=tf.concat(1,[t1,t2])
print c1.get_shape()
print c2.get_shape()
sess=tf.Session()
print sess.run([c1,c2])
sess.close()
2. 两个三维tensor连接
concat_dim:0表示纵向,1表示行,2表示列
#!/user/bin/env python
# coding=utf-8
import tensorflow as tf
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]]]
c1= tf.concat(0,[t1,t2])
c2=tf.concat(1,[t1,t2])
c3=tf.concat(2,[t1,t2])
print c1.get_shape()
print c2.get_shape()
print c3.get_shape()
sess=tf.Session()
print sess.run([c1,c2,c3])
sess.close()