在AE-lstm中,
这里是一个形状为[batch, timestamp, diml]
的lstm(被视为[b, t, dl]
),方面向量为[batch, dima]
(被视为[b, da]
)
如何连接两个变量以使形状为
[b, t, dl+da]
?
这意味着对于每个批处理,将方面向量连接到每个时间戳行。
答案 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)