如何用3维张量连续2-d张量

时间:2018-04-24 08:22:54

标签: python tensorflow concat

在AE-lstm中, 这里是一个形状为[batch, timestamp, diml]的lstm(被视为[b, t, dl]),方面向量为[batch, dima](被视为[b, da]

  

如何连接两个变量以使形状为[b, t, dl+da]

这意味着对于每个批处理,将方面向量连接到每个时间戳行。

1 个答案:

答案 0 :(得分:0)

我不是很确定,但我认为你想要的是

C = tf.concat([A, tf.tile(tf.expand_dims(B, axis=1), [1, t, 1])], axis=-1)

其中A是你的lstm,B是方面向量。我通过简单地检查尺寸来验证它,这似乎是正确的。让我们看看这是否是你真正需要的。

修改:为了清楚起见,这是我用来测试的完整代码:

import tensorflow as tf

b = 5
t = 10
dl = 15
da = 12

A = tf.ones(shape=(b, t, dl))
B = tf.ones(shape=(b, da))

C = tf.concat([A, tf.tile(tf.expand_dims(B, axis=1), [1, t, 1])], axis=-1)
print(C)

这给出了预期的输出:

Tensor("concat:0", shape=(5, 10, 27), dtype=float32)