Я пытаюсь решить простую задачу многоклассовой классификации. Но почему-то я получаю эту ошибку. Программа работает, когда я использую один слой с двумя нейронами, но результаты не очень хорошие, но это не имеет смысла, потому что это проблема мультикласса, поэтому выходной слой должен иметь 4 нейрона на выходе. После этого это не работает. Я думаю, что есть очень глупая ошибка, которую я делаю здесь. Ниже мой код.
import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation
from tensorflow.keras.optimizers import Adam
# Generate dummy data
import numpy as np
x_train = np.array([[1, 1],
[1, 2],
[2, 2],
[-1,0],
[-1,-2],
[2, 1],
[-1,-2],
[-1,-2]])
print(x_train.shape)
y_train = np.array([[0,0],
[0,0],
[0,1],
[0,1],
[1,0],
[1,0],
[1,1],
[1,1]])
# from keras.utils.np_utils import to_categorical
# y_train = to_categorical(y_train)
print(y_train.shape)
model = Sequential()
model.add(Dense(8, activation='relu', input_dim=2))
# model.add(Dropout(0.5))
# model.add(Dense(4, activation='relu'))
model.add(Dense(4, activation='softmax'))
# model.add(Dropout(0.5))
adm = Adam(lr=0.001)
# sgd = SGD(lr=0.001)
model.compile(loss='categorical_crossentropy',
optimizer=adm,
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=20, batch_size=1)
score = model.evaluate(x_train, y_train, batch_size=1)
Ошибка:
ValueError: Shapes (1, 2) and (1, 4) are incompatible