如何在TensorFlow中水平连接两个张量?

时间:2017-04-13 01:43:56

标签: tensorflow

我有两个形状为(100, 4)(100, 2)的张量。 我想在NumPy中在TensorFlow中执行类似于np.hstack的连接操作,以便输出的形状为(100, 6)。是否有TensorFlow功能吗?

4 个答案:

答案 0 :(得分:10)

您可以将tf.concat用于此目的,如下所示:

sess=tf.Session()
t1 = [[1, 2], [4, 5]]
t2 = [[7, 8, 9], [10, 11, 12]]
res=tf.concat(concat_dim=1,values=[t1, t2])
print(res.eval(session=sess))

打印

[[ 1  2  7  8  9]
 [ 4  5 10 11 12]]

答案 1 :(得分:0)

我尝试了上面的代码,但出现了一些错误。以下代码在tf 1.15版本中可以正常运行:

x = tf.constant( [[1, 2,4],[7,8,12]])

y = tf.constant([[88],[99]])

res=tf.concat([x, y],1)

答案 2 :(得分:0)

我有类似的问题。我试图用Keras连接两个图像张量。 Tensor type and shape 两者是相同的,但它表示使用非符号张量的输入调用了层concatenate_X(数字X发生了变化)。接收的类型: 我试图像这样将它们串联起来:

X=concatenate([X1,X2],axis=-1)

答案 3 :(得分:0)

有一种更简单的方法。假设 t1 是您的 100x4 张量,而 t2 是 100x2 张量。您可以执行以下操作:

result= torch.concat((t1,t2), axis=1)

结果是一个 100x6 的张量。