我有一个[64, 270]
形状的张量(64批* 270个项目),并想向每批中添加相同的200个其他项([200]
形状的张量)。结果应该是,这64个批次中的每个批次都包含其原始的270个项目以及每个批次相同的200个新项目。
基本上是concat([64, 270], [200])
-> [64, 470]
我该怎么做?我尝试使用tf.concat
,tf.stack
,使用tf.expand_dims
增加第二张量的秩,但没有任何效果。它总是抱怨等级不相等或第零(批次)维度不相等。
答案 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)