数据集形状不匹配 Conv1D 输入层
Dataset shape mismatch Conv1D input layer
正在尝试将 Conv1D 层设置为 keras 中的输入层。
数据集有1000个时间步,每个时间步有1个特征。
阅读一堆答案后,我将数据集重塑为以下格式(n_samples、时间步长、特征),在我的情况下对应于以下格式:
train_data = (78968, 1000, 1)
test_data = (19742, 1000, 1)
train_target = (78968,)
test_target = (19742,)
我稍后使用以下行创建和编译代码
model = Sequential()
model.add(Conv1D(64, (4), input_shape = (1000,1) ))
model.add(MaxPooling1D(pool_size=2))
model.add(Dense(1))
optimizer = opt = Adam(decay = 1.000-0.999)
model.compile(optimizer=optimizer,
loss='mean_squared_error',
metrics=['mean_absolute_error','mean_squared_error'])
然后我尝试拟合,注意,train_target 和 test_target 是 pandas 系列所以我调用 DataFrame.values 转换为 numpy 数组,我怀疑那里那里可能有问题?
training = model.fit(train_data,
train_target.values,
validation_data=(test_data, test_target.values),
epochs=epochs,
verbose=1)
模型可以编译,但当我尝试拟合时出现错误
Error when checking target: expected dense_4 to have 3 dimensions,
but got array with shape (78968, 1)
我已经尝试了重塑数据的每一种组合,但都无法正常工作。
我之前只在另一个项目中使用过密集层的keras,其中指定了input_dimension而不是input_shape,所以我不确定我在这里做错了什么.我已经阅读了几乎所有关于数据形状问题的堆栈溢出问题,恐怕问题出在其他地方,感谢您的帮助,谢谢。
在model.add(MaxPooling1D(pool_size=2))
行下,加一行model.add(Flatten())
,你的问题就解决了。 Flatten 函数将帮助您将数据转换为正确的形状,请参阅此站点以获取更多信息https://www.tensorflow.org/api_docs/python/tf/keras/layers/Flatten
正在尝试将 Conv1D 层设置为 keras 中的输入层。
数据集有1000个时间步,每个时间步有1个特征。
阅读一堆答案后,我将数据集重塑为以下格式(n_samples、时间步长、特征),在我的情况下对应于以下格式:
train_data = (78968, 1000, 1)
test_data = (19742, 1000, 1)
train_target = (78968,)
test_target = (19742,)
我稍后使用以下行创建和编译代码
model = Sequential()
model.add(Conv1D(64, (4), input_shape = (1000,1) ))
model.add(MaxPooling1D(pool_size=2))
model.add(Dense(1))
optimizer = opt = Adam(decay = 1.000-0.999)
model.compile(optimizer=optimizer,
loss='mean_squared_error',
metrics=['mean_absolute_error','mean_squared_error'])
然后我尝试拟合,注意,train_target 和 test_target 是 pandas 系列所以我调用 DataFrame.values 转换为 numpy 数组,我怀疑那里那里可能有问题?
training = model.fit(train_data,
train_target.values,
validation_data=(test_data, test_target.values),
epochs=epochs,
verbose=1)
模型可以编译,但当我尝试拟合时出现错误
Error when checking target: expected dense_4 to have 3 dimensions,
but got array with shape (78968, 1)
我已经尝试了重塑数据的每一种组合,但都无法正常工作。
我之前只在另一个项目中使用过密集层的keras,其中指定了input_dimension而不是input_shape,所以我不确定我在这里做错了什么.我已经阅读了几乎所有关于数据形状问题的堆栈溢出问题,恐怕问题出在其他地方,感谢您的帮助,谢谢。
在model.add(MaxPooling1D(pool_size=2))
行下,加一行model.add(Flatten())
,你的问题就解决了。 Flatten 函数将帮助您将数据转换为正确的形状,请参阅此站点以获取更多信息https://www.tensorflow.org/api_docs/python/tf/keras/layers/Flatten