python - 使用 Keras io 进行最简单的 Lstm 训练

标签 python lstm keras

我想使用 keras python 库创建最简单的 LSTM。

我有以下代码:

import pandas as pd
import numpy as np
from keras.models import Sequential
from keras.layers.core import Dense, Activation
from keras.layers.recurrent import LSTM

X_train = pd.DataFrame( np.array([ [1, 2], [3, 4], [5, 6], [7, 8], [5.1, 6.1], [7.1, 8.1] ]))
y_train = pd.DataFrame( np.array([1, 2, 3, 4, 3, 4]) )
X_test = pd.DataFrame( np.array([ [1.1, 2.1], [3.1, 4.1] ]) )
y_test = pd.DataFrame( np.array([1, 2]) )

model = Sequential()
model.add(LSTM( output_dim = 10, return_sequences=False, input_dim=X_train.shape[1]))
model.add(Dense(input_dim = 10, output_dim=2))
model.add(Activation("linear"))
model.compile(loss="mean_squared_error", optimizer="rmsprop")
model.fit(X_train, y_train)

但似乎没有用...

Epoch 1/100
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/keras/models.py", line 489, in fit
    shuffle=shuffle, metrics=metrics)
  File "/usr/lib/python2.7/site-packages/keras/models.py", line 201, in _fit
    ins_batch = slice_X(ins, batch_ids)
  File "/usr/lib/python2.7/site-packages/keras/models.py", line 55, in slice_X
    return [x[start] for x in X]
  File "/usr/lib/python2.7/site-packages/pandas-0.17.0-py2.7-linux-x86_64.egg/pandas/core/frame.py", line 1908, in __getitem__
    return self._getitem_array(key)
  File "/usr/lib/python2.7/site-packages/pandas-0.17.0-py2.7-linux-x86_64.egg/pandas/core/frame.py", line 1952, in _getitem_array
    indexer = self.ix._convert_to_indexer(key, axis=1)
  File "/usr/lib/python2.7/site-packages/pandas-0.17.0-py2.7-linux-x86_64.egg/pandas/core/indexing.py", line 1121, in _convert_to_indexer
    raise KeyError('%s not in index' % objarr[mask])
KeyError: '[3 4 2 5] not in index'

任何人都可以向我解释到底出了什么问题吗?

我也尝试过转置矩阵,但事实并非如此。

最佳答案

我看到的第一个问题是使用 Pandas Dataframe。我认为你应该在这里使用 numpy 数组。第二个问题是X矩阵。它应该是一个 3D 数组。例如,如果我尝试使用

X_train = np.random.randn(6,2,2)

然后就可以了。

关于python - 使用 Keras io 进行最简单的 Lstm 训练,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33292212/

相关文章:

python - 如何在Python中访问列表内的坐标?

python - Keras 多步 LSTM 批量训练每一步分类

python - 类型错误 : Unexpected keyword argument passed to optimizer: learning_rate

keras - keras LSTM 中的训练损失为 nan

python - 使用 Keras 进行 LSTM 预测

python - 删除keras预训练模型层

python - 从 windows 系统服务 python 调用 .exe?

python - 获取 ssh 服务器的 64 进制主机 key

python - 如何读取Python Arduino Uno的多个条件

python - Keras 实现中的 LSTM 架构?