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_i
和 y_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)
我正在努力格式化我的数据。
我在 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_i
和 y_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)