Когда вы говорите, что ваш вход имеет форму (20204, 2)
, вы имеете в виду, что у вас есть 20204 обучающих примеров, каждый из которых имеет 2 измерений.
Вы должны указать, что ваш ввод рассчитан на 2 размеров и не 20204 . Ошибка возникает из-за того, что ваша модель ожидает получить функции 20204 (т.е. параметр input_dim=20204
), но фактически получает функции 2 .
Чтобы исправить это, просто измените параметр, который я упомянул выше:
model=Sequential()
model.add(Dense(output_dim=2, init='uniform', activation='relu', input_dim=2))
model.add(Dense(output_dim=3, init='uniform', activation='softmax'))
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(x_train, y_train, batch_size=12, epochs=14)
loss_and_metrics = model.evaluate(x_test, y_test, batch_size=12)
print(loss_and_metrics)
Редактировать:
Как правильно отметили @today и @desertnaut, на вашем рисунке показан скрытый слой с 4 нейронами, а не 2 , как в приведенном выше коде.
Чтобы изменить это, вам нужно заменить параметр output_dim=2
в скрытом слое на output_dim=4
:
model.add(Dense(output_dim=4, init='uniform', activation='relu', input_dim=2))