如何使用多维输入训练Keras LSTM?

这是我的输入数据的形状:

>> print(X_train.shape)(1125, 75, 2)

然后我尝试通过这种方式构建模型:

model = Sequential()model.add(LSTM(    output_dim=50,    input_shape = (75, 2),    #input_shape = X_train.shape[1:],    return_sequences=True))model.add(Dropout(0.2))model.add(LSTM(    100,    return_sequences=False))model.add(Dropout(0.2))model.add(Dense(    output_dim=1))model.add(Activation("linear"))model.compile(loss="mse", optimizer="rmsprop")model.fit(    X_train,    y_train,    batch_size=512,    nb_epoch=5,    validation_split=0.1,    verbose=0,    shuffle=True)

但是在拟合时返回了以下错误:

ValueError: 检查模型目标时出错:期望activation_32有2个维度,但得到的数组形状为(1125, 75, 2)

这是完整的错误输出:

---------------------------------------------------------------------------ValueError                                Traceback (most recent call last)<ipython-input-48-b209fe29a91d> in <module>()    152         verbose=0,--> 153         shuffle=True)    154 /usr/local/lib/python3.5/dist-packages/keras/models.py in fit(self, x, y, batch_size, nb_epoch, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, **kwargs)    670                               class_weight=class_weight,    671                               sample_weight=sample_weight,--> 672                               initial_epoch=initial_epoch)    673     674     def evaluate(self, x, y, batch_size=32, verbose=1,/usr/local/lib/python3.5/dist-packages/keras/engine/training.py in fit(self, x, y, batch_size, nb_epoch, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch)   1114             class_weight=class_weight,   1115             check_batch_axis=False,-> 1116             batch_size=batch_size)   1117         # prepare validation data   1118         if validation_data:/usr/local/lib/python3.5/dist-packages/keras/engine/training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, check_batch_axis, batch_size)   1031                                    output_shapes,   1032                                    check_batch_axis=False,-> 1033                                    exception_prefix='model target')   1034         sample_weights = standardize_sample_weights(sample_weight,   1035                                                     self.output_names)/usr/local/lib/python3.5/dist-packages/keras/engine/training.py in standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix)    110                                  ' to have ' + str(len(shapes[i])) +    111                                  ' dimensions, but got array with shape ' +--> 112                                  str(array.shape))    113             for j, (dim, ref_dim) in enumerate(zip(array.shape, shapes[i])):    114                 if not j and not check_batch_axis:ValueError: Error when checking model target: expected activation_32 to have 2 dimensions, but got array with shape (1125, 75, 2)

我做错了什么?我已经按照Keras文档的这个教程进行操作了。


回答:

你的问题不在于输入形状,而在于输出形状。你需要重新检查你的y_train是否具有适当的形状。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注