【发布时间】:2018-10-24 05:29:38
【问题描述】:
输入数组有 4 列:前 3 列是介于 -1 和 1 之间的实数,第 4 列是期望的输出,可以是 -1 或 0 或 +1(这是一个分类问题,-1 和 1表示有用的类别,0 表示样本不属于任何类别)。显然网络类型选择为 LSTM,因为类别不仅取决于前 3 列的值,还取决于前面样本的属性。
我会使用简单的非 LSTM 网络(但我不确定这是否正确,因为我对 Keras 完全陌生,并且将 Python 用于神经网络,我之前只在 Java 和 C# 中使用过 Encog而且它没有 LSTM)
# dataset = the array I've described above
x = dataset[:, 0:3]
y = dataset[:, 3]
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x, y, epochs=epochs, batch_size=10)
但是对于 LSTM,这会引发 ValueError,因为 LSTM 需要 3D 输入数组,而我不明白如何正确地重塑数组。
【问题讨论】:
-
您需要从数据中提取(重叠)数据块,然后将它们提供给 LSTM 层。
标签: python tensorflow keras lstm