首页 > 解决方案 > 在 Keras 中连接三个不同维度的输入

问题描述

我有两个相同大小的输入,然后应用向量大小为 128 的词嵌入,然后对其进行整形,使两个输入的形状均为 (none,1,128),另一个输入是上下文的维度 (none,1,18),我想连接这三个输入,然后将组合输出馈送到 LSTM 层。但我无法连接输入,因为尺寸与此错误不同:

层需要具有匹配形状的Concatenate输入,除了 concat 轴。得到输入形状:[(None, 1, 128), (None, 1, 128), (None, 1, 18)]

   combined= Concatenate(axis=-2)([input_1,input_2, input_3])

shape (none,1,128) 的两个输入是词嵌入,而 shape(none,1,18) 的第三个输入是某个类别变量的一种热编码。

有谁知道如何连接这个?任何帮助将不胜感激!

标签: pythontensorflowmachine-learningkeraskeras-layer

解决方案


在最后一个维度上连接它们

input_1 = Input((1,128))
input_2 = Input((1,128))
input_3 = Input((1,18))

combined = Concatenate(axis=-1)([input_1,input_2, input_3])

这会产生形状的组合张量 (batch_dim, 1, 274)


推荐阅读