多变量时间序列二元分类的输入格式



我正在尝试使用 LSTM 模型对多变量时间序列数据进行二元分类。我在一天中收集了大约 100 天的七个属性(即 100 个大小为 [9000, 7] 的数组)。其中每个数组都具有 1 或 0 的单个分类状态。

鉴于我是 Keras 和机器学习的新手,我已经开始尝试构建最简单的模型,但是当我尝试训练它们时,我不断收到有关输入形状的错误。例如,我的第一层:

model = Sequential()
model.add(Conv2D(32, (3,3), input_shape=(9000,7,1), activation='relu'))
...
model.fit(x=X_train, y=Y_train, epochs=100) 

使用类型为float64的X_train,大小为(100L,9000L,7L),我收到一个错误,内容如下:

值错误:检查输入时出错:预期conv2d_11_input有 4 个维度,但得到形状(100L、9000L、7L)的数组

我尝试更改批大小和纪元数但没有成功,所以有人可以解释如何正确重塑我的输入吗?我错过了一些简单的东西吗?

我怀疑你想使用Conv1D(3D数据),不是吗?
您使用的是Conv2D(4D 数据 = 图像)。

对于Conv1D和任何RNN图层(例如LSTM),您的输入是 3D 数据,并且您的input_shapeinput_shape=(9000,7)


输入数据应该是一个形状为(100,9000,7)的数组,根据错误消息的内容,这已经是可以的了。


假设每一天都是一个单独的序列,并且您不想连接天数。

最新更新