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

在Keras中连接两个不同形状的张量,keras,Keras,在下图中,我有两个不同的张量:张量1和张量2 如何合并(连接)这两个张量,使LSTM的输入现在为: (张量1[0],张量1,串联(张量1[2],张量2)) 不可能将它们连接起来 你需要以某种方式操纵、转换它们。 我能想到的最合乎逻辑的事情是重复张量2六次,以填充它没有的时间步长 如果这是确定的(将张量2转换为6个恒定步骤的序列),则解决方案为: tensor2Repeated = RepeatVector(6)(tensor2) tensor = Concatenate()([tensor1,t

在下图中,我有两个不同的张量:张量1和张量2

如何合并(连接)这两个张量,使LSTM的输入现在为:
(张量1[0],张量1,串联(张量1[2],张量2))


不可能将它们连接起来

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

如果这是确定的(将张量2转换为6个恒定步骤的序列),则解决方案为:

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

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

tensor2Repeated = RepeatVector(3)(tensor2)
tensor2Reshaped = reshape(tensor2Repeated, (32, 6, 1))
tensor = Concatenate()([tensor1,tensor2Reshaped])

不可能按原样连接它们。你必须操纵它们。那么,你打算如何填充张量2中不存在的6个时间步呢?复制张量2六次?好像你有一个连续的6个步骤?这就是我想要的。Thank.BTW,Concatenate()是来自numpy、tf.concat还是keras层?
Concatenate
是来自keras层还是keras层:
keras.layers.Concatenate