多元时间序列二元分类的输入格式
Input Format for Mulivariate Time Series Binary Classification
我正在尝试使用 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),我收到一条错误消息:
ValueError: Error when checking input: expected conv2d_11_input to have 4 dimensions, but got array with shape (100L, 9000L, 7L)
我试过更改批量大小和迭代次数但没有成功,所以有人可以解释如何正确重塑我的输入吗?我错过了一些简单的东西吗?
我怀疑你想使用 Conv1D
(3D 数据),不是吗?
您正在使用 Conv2D
(4D 数据 = 图像)。
对于 Conv1D
和任何 RNN
层,例如 LSTM
,您的输入是 3D 数据,您的 input_shape
应该是 input_shape=(9000,7)
.
输入的数据应该是(100,9000,7)
形状的数组,根据报错信息的内容已经可以了。
假设每一天都是一个单独的序列并且您不想连接几天。
我正在尝试使用 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),我收到一条错误消息:
ValueError: Error when checking input: expected conv2d_11_input to have 4 dimensions, but got array with shape (100L, 9000L, 7L)
我试过更改批量大小和迭代次数但没有成功,所以有人可以解释如何正确重塑我的输入吗?我错过了一些简单的东西吗?
我怀疑你想使用 Conv1D
(3D 数据),不是吗?
您正在使用 Conv2D
(4D 数据 = 图像)。
对于 Conv1D
和任何 RNN
层,例如 LSTM
,您的输入是 3D 数据,您的 input_shape
应该是 input_shape=(9000,7)
.
输入的数据应该是(100,9000,7)
形状的数组,根据报错信息的内容已经可以了。
假设每一天都是一个单独的序列并且您不想连接几天。