С простой двоичной классификацией модель постоянно дает ответ 1 (даже если мы вводим данные из разных типов папок, по которым нас обучали), в то время как точность тестовых и проверочных образцов высока - около 97 /92 процентаДля каждого класса есть около 500 изображений, но я также использую генераторы.
train_datagen = ImageDataGenerator(rescale=1. / 255,
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')`
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.fit_generator(
train_generator,
steps_per_epoch=100,
epochs=1,
validation_data=val_generator,
validation_steps=20)
тип изображения 0
real: 0.0 pred: 1.
тип изображения 1
реальный: 1,0 пред: 1