Я не совсем понимаю, что вы делаете, похоже, вы выполняете классификацию по нескольким меткам, используя Sigmoid
и binary_crossentropy
, что, как следует из названия, позволяет выполнять двоичную классификацию, используя только 2 метки.
Чтобы иметь работающую модель, вы должны изменить свою двоичную модель на мультиклассовую:
- Измените свой последний плотный слой на:
classifier.add(Dense(output_dim=NB_CLASS, activation='softmax'))
- Измените свою потерю на:
classifier.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
- Измените ваш поток данных на:
training_set = train_datagen.flow_from_directory(
'train', target_size=(64, 64), batch_size=32, class_mode='categorical')
test_set = test_datagen.flow_from_directory(
'test', target_size=(64, 64), batch_size=32, class_mode='categorical')
Оставайтесь на связи!