Keras 输入维度

Keras input dimension

我正在努力格式化我的数据。

我在 Keras 中设计了一个简单的模型。 它由两个独立的模型(Embedding 层和 LSTM 层)组成。 然后将这两个模型与 Merge 合并。然后通过一些卷积层将它们组合在一起。

这些是我嵌入的例句。

x1
>>> array([[ 0, 25,  0,  0,  0]], dtype=int32)
y1
>>> array([[42, 10,  0,  0,  0, 10]], dtype=int32)

使用 predict 我得到了组合句子所需的单个输出。

model.predict([x1,y1])
>>> array([[ 0.92327869]])

我什至可以使用

model.fit([x,y],gold[0]) 

训练模型,其中

gold[0]
>>> array([ 1.])

问题是如何格式化示例 x_iy_i 以便我可以在 fit 函数中使用它。 model.predict([[x1,x2],[y1,y2]]) 没有用,产量

TypeError: list indices must be integers or slices, not list

因此,按照 Keras Embedding 文档,您需要提供一个 numpy.array 维度 2 作为嵌入层的输入。因为您有多个输入 - 您需要提供一个列表numpy 数组,以便将它们提供给多个输入。

然而,在最后一种情况下,您提供的是输入列表列表。这导致了一个问题。为了解决这个问题,您需要通过以下方式 numpy.concatenate 这两个数组:

x = numpy.concatenate((x1, x2), axis = 0)
y = numpy.concatenate((y1, y2), axis = 0)