我是Keras的新手,我正在尝试制作分类模型,这是我的模型:
model = Sequential()
model.add(Dense(86, activation='sigmoid', input_dim=21))
model.add(Dense(50, activation='sigmoid'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer='nadam', metrics=['accuracy'])
Run Code Online (Sandbox Code Playgroud)
但它一直给我这个错误:
ValueError: Error when checking target: expected dense_3 to have shape (None, 1) but got array with shape (17268, 2)
Run Code Online (Sandbox Code Playgroud)
现在我知道我需要使用一个热编码对我的标签进行编码并将它们展平,所以我也做到了.
oht_y_train = np_utils.to_categorical(y_train, num_classes=3)
oht_y_train = np.ndarray.flatten(oht_y_train)
Run Code Online (Sandbox Code Playgroud)
但我仍然得到同样的错误.
注意:在我弄平标签之前,我得到了同样的错误,只是形状是(5765,3)
我还打印了标签阵列的形状,它给了我(17268,)