Цель этой нейронной net - классифицировать изображения по 7 категориям. Вот код:
model = Sequential()
model.add(Conv2D(60, kernel_size=(3, 3), activation='relu', input_shape=(225,225,3)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(7, activation='softmax'))
model.compile(optimizer="rmsprop", loss="binary_crossentropy", metrics=["accuracy"])
h = model.fit(train_generator, epochs=4, steps_per_epoch=28, validation_data=validation_generator, validation_steps=11)
Точность якобы действительно хорошая. Точность теста также составляет около 77%
Epoch 1/4
28/28 [==============================] - 91s 3s/step - loss: 3.4790 - accuracy: 0.7696 - val_loss: 2.6292 - val_accuracy: 0.7720
Epoch 2/4
28/28 [==============================] - 87s 3s/step - loss: 3.5448 - accuracy: 0.7696 - val_loss: 3.9438 - val_accuracy: 0.7698
Epoch 3/4
28/28 [==============================] - 76s 3s/step - loss: 3.5431 - accuracy: 0.7696 - val_loss: 3.5056 - val_accuracy: 0.7698
Epoch 4/4
28/28 [==============================] - 76s 3s/step - loss: 3.5415 - accuracy: 0.7696 - val_loss: 3.0674 - val_accuracy: 0.7857
Этот код используется для прогнозирования
prediction = model.predict(test_generator)
print(prediction)
Однако выходной результат имеется только в одном классе.
[[0. 0. 0. 0. 1. 0. 0.]
[0. 0. 0. 0. 1. 0. 0.]
[0. 0. 0. 0. 1. 0. 0.]
....
[0. 0. 0. 0. 1. 0. 0.]
[0. 0. 0. 0. 1. 0. 0.]]
Может кто-нибудь объяснить, почему это так? Я довольно новичок в нейронных сетях