如何在TensorFlow中连接大小不等的张量?

时间:2018-06-28 21:53:55

标签: python tensorflow

我有一个[64, 270]形状的张量(64批* 270个项目),并想向每批中添加相同的200个其他项([200]形状的张量)。结果应该是,这64个批次中的每个批次都包含其原始的270个项目以及每个批次相同的200个新项目。

基本上是concat([64, 270], [200])-> [64, 470]

我该怎么做?我尝试使用tf.concattf.stack,使用tf.expand_dims增加第二张量的秩,但没有任何效果。它总是抱怨等级不相等或第零(批次)维度不相等。

1 个答案:

答案 0 :(得分:0)

您可以尝试

tf.concat([x,tf.tile(y[None,...],[tf.shape(x)[0],1])], axis=1)

代码:

x = tf.placeholder(tf.float32,[None,270])
y = tf.placeholder(tf.float32, (200))

z = tf.concat([x,tf.tile(y[None,...],[tf.shape(x)[0],1])], axis=1)
with tf.Session() as sess:
   print(sess.run(z, {x:np.random.normal(size=(64,270)), y:np.random.normal(size=(200))}).shape)
# (64, 470)