Keras дает 97 процентов на тестовых данных для бинарной классификации, но в итоге все 1 являются предсказаниями - PullRequest
0 голосов
/ 28 ноября 2018

С простой двоичной классификацией модель постоянно дает ответ 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

1 Ответ

0 голосов
/ 28 ноября 2018

Вы масштабируете свои тестовые изображения в своем генераторе ImageDataGenerator(rescale=1./255, ...) и, вероятно, забыли сделать это с вашими тестовыми изображениями.Попробуйте model.predict(test_images/255)

...