Tebsorflow中的两个向量的拼接

tensorflow中的concat方法(tf.concat)可以进行两个向量的拼接,共有两个参数:

1、要拼接的两个向量;

2、要拼接的维度,从0开始。

1   t1 = [[1, 2, 3], [4, 5, 6]]
2   t2 = [[7, 8, 9], [10, 11, 12]]
3   tf.concat([t1, t2], 0)  # [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
4   tf.concat([t1, t2], 1)  # [[1, 2, 3, 7, 8, 9], [4, 5, 6, 10, 11, 12]]
5  
6   # tensor t3 with shape [2, 3]
7   # tensor t4 with shape [2, 3]
8   tf.shape(tf.concat([t3, t4], 0))  # [4, 3]
9   tf.shape(tf.concat([t3, t4], 1))  # [2, 6]

 解释:

  第一个拼接是在0维度进行拼接,将这两个向量的行进行拼接,即两个[2,3](2行3列)的向量0维度拼接后会变成[4,3](4行3列)

  第二个拼接是在1维度进行拼接,将这两个向量的列进行拼接,即两个[2,3](2行3列)的向量1维度拼接后会变成[2,6](2行6列)

  在进行搭建神经网络是为了拓宽网络的宽度,会进行两个向量的拼接,而经过卷积后的向量都是四维的([?, x,y,channel]),而我们需要将第二个向量拼接到第一个向量后面,通道数进行相加,所以应当是在3维度进行拼接。即tf.concat([conv1,conv2],3)。

posted @ 2021-03-08 15:01  一帆小白  阅读(1731)  评论(0编辑  收藏  举报