show codes:
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]]]
with tf.Session() as sess:
A = tf.concat(0, [t1, t2])
B = tf.concat(1, [t1, t2])
C = tf.concat(2, [t1, t2])
print(sess.run(A))
print('---------------------------------------------------------')
print(sess.run(B))
print('---------------------------------------------------------')
print(sess.run(C))
result:
具体来讲:
concat沿着某一维度链接tensor, 需要理解tensor 的维度
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]]]
第0维解释:
t1和t2的0维是两个tensor最外层的两个中括号, 所以 tf.concat(0, [t1,t2]), 就是将t1 和 t2的最外层中括号去掉,元素合在一起在最外层再加一个中括号即可
第1维解释:
t1和t2的1维中第一个元素分别是:[[1, 1, 1],[2, 2, 2]] 和 [[5, 5, 5],[6, 6, 6]], 分别把外层中括号去掉合在一起,即为[1, 1, 1], [2, 2, 2], [5, 5, 5], [6, 6, 6] 然后外层在加一个中括号即可[[1, 1, 1], [2, 2, 2], [5, 5, 5], [6, 6, 6]]
第2维解释:
t1和t2的2维中的第一个元素分别为[1, 1, 1] 和 [5, 5, 5],两者合并后即为 [1, 1, 1, 5, 5, 5]
参考资料:
http://blog.csdn.net/helei001/article/details/51363706
http://blog.csdn.net/mao_xiao_feng/article/details/53366163