R 对时间序列数据拟合LSTM时出错

R 对时间序列数据拟合LSTM时出错,r,keras,time-series,lstm,R,Keras,Time Series,Lstm,我有14个特征的每日时间序列数据。我对使用所有特性1到14预测特性1(二进制)的一步超前预测感兴趣。为此,我使用Keras在R中实现了一个LSTM模型 为了使用LSTM层,我将我的训练和验证数据矩阵转换为三维阵列,尺寸为: > dim(train_x) [1] 1093 1 14 > dim(valid_x) [1] 366 1 14 序列y是长度为1093的一维向量。此外,train_y等于train_x的第一个输入功能,但它向前滞后1个时间步(提前一步预测)

我有14个特征的每日时间序列数据。我对使用所有特性1到14预测特性1(二进制)的一步超前预测感兴趣。为此,我使用Keras在R中实现了一个LSTM模型

为了使用LSTM层,我将我的训练和验证数据矩阵转换为三维阵列,尺寸为:

> dim(train_x)
[1] 1093    1   14

> dim(valid_x)
[1] 366   1  14
序列y
是长度为1093的一维向量。此外,
train_y
等于
train_x
的第一个输入功能,但它向前滞后1个时间步(提前一步预测)

运行以下代码后:

model <- keras_model_sequential() %>%
  layer_lstm(units = 32, input_shape = list(dim(train_x)[[2]], dim(train_x)[[3]])) %>%
  layer_dense(units = 1, activation = "sigmoid")

model %>% compile(
  optimizer = "rmsprop",
  loss = "binary_crossentropy",
  metrics = c("accuracy")
)

history <- model %>% fit(
  x = train_x,
  y = train_y,
  steps_per_epoch = 500,
  epochs = 20,
  validation_data = list(valid_x, valid_y),
  shuffle=FALSE
)
你知道发生了什么事吗?我试着用谷歌搜索错误,但在我的具体案例中,我不知道如何修复它

非常感谢您的帮助:)


*编辑:如果有帮助的话,我试着按照上面的过程进行操作,但是代码是用Python编写的,这意味着我不确定我是否使用R做了所有正确的事情。

我实际上解决了这个问题。出现此问题是因为我错过了
fit()
中的
validation\u步骤
参数。必须将其设置为用于验证的样本数(批量大小)

...
453/500 [==========================>...] - ETA: 0s - loss: 0.4137 - acc: 0.8219
461/500 [==========================>...] - ETA: 0s - loss: 0.4125 - acc: 0.8227
469/500 [===========================>..] - ETA: 0s - loss: 0.4113 - acc: 0.8236
477/500 [===========================>..] - ETA: 0s - loss: 0.4101 - acc: 0.8244
485/500 [============================>.] - ETA: 0s - loss: 0.4089 - acc: 0.8252
493/500 [============================>.] - ETA: 0s - loss: 0.4077 - acc: 0.8260
 Show Traceback

 Rerun with Debug
 Error in py_call_impl(callable, dots$args, dots$keywords) : 
  TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'