在Keras中连接两个具有不同形状的张量

时间:2018-04-30 03:16:45

标签: keras

在下图中,我有两个不同的张量:tensor1和tensor2。

如何合并(连接)这两个张量,以便现在输入到LSTM:
(tensor1 [0],tensor1 1,连接(tensor1 [2],tensor2 1))??

enter image description here

2 个答案:

答案 0 :(得分:3)

连接它们是不可能的。

你需要操纵,以某种方式改变它们。 我能想到的最合乎逻辑的事情是重复张量2六次以填补它没有的时间步长。

如果可以(将张量2转换为6个常量步骤的序列),解决方法是:

tensor2Repeated = RepeatVector(6)(tensor2)
tensor = Concatenate()([tensor1,tensor2Repeated])

答案 1 :(得分:0)

减少冗余不是更好吗?您仅需复制第二张量3次即可产生与第一个张量相同的信息量,然后只需重塑形状即可。要连接任意数量的张量,只需计算每个张量减去最后一个轴的大小(乘以最后一个轴之前的所有轴即可得到大小),找到最大的张量m,然后对每个张量x进行上采样或重复上限(m.size / x.size)。然后,您只需使用与m相同的轴重塑每个轴的形状即可,最后一个轴除外,您可以使用-1隐式地计算或让框架进行隐式计算。

{{1}}