请解释 Keras 中的输入形状

数据挖掘 喀拉斯 重塑
2021-09-22 01:44:20

我的数据由形状为 (2,3) 的二维数组组成。整个数据集 ( emp) 由 12 个项目组成(我知道对于 NN 训练来说这个数字太小了,但它只是一个测试),所以它的形状为 (12,2,3)

truevals有形状 (12,)

当我尝试添加 Keras 层时:

model = Sequential()
model.add(Dense(4, input_shape=(2,3), activation='tanh'))
model.add(Dense(1, activation='sigmoid'))
model.compile(SGD(lr=0.5), 'binary_crossentropy', metrics=['accuracy'])
model.fit(emp, truevals, epochs=200)

然后当我拟合模型时,我得到了异常:

检查目标时出错:预期 dense_30 有 3 个维度,但得到了形状为 (12, 1) 的数组。

我究竟做错了什么?

1个回答

密集层不会减少输入的维度,因此如果您提供 (12,2,3) 输入,它期望 (12,2,1) 输出(对于您的情况)。

如果你想让它工作,你应该展平你的输入(或第一层的输出)并提供一个 (12,1) 输出。