Я пытаюсь классифицировать изображения (29 x 29), используя только 1 канал в Keras. Если средний пиксель находится в определенном диапазоне, тогда выход равен 1, если нет, то это 0.Двоичная классификация изображений в Keras
Для тренировочного набора У меня есть 10000 изображений с выходными 1 и 30000 изображений с выходом 0, и я использую следующие архитектура:
model = Sequential()
# kernel = (4, 4); 6 outputmaps 26x26
model.add(Convolution2D(6, 4, 4, input_shape=(img_channels, img_rows, img_columns)))
model.add(Activation('relu'))
# 6 outputmaps of 13x13
model.add(MaxPooling2D(pool_size=(2, 2)))
# 12 outputmaps of 10x10 ; kernel = (4, 4)
model.add(Convolution2D(12, 4, 4))
model.add(Activation('relu'))
# 12 outputmaps of 5x5
model.add(MaxPooling2D(pool_size=(2, 2)))
# 24 outputmaps of 4x4 ; kernel = (2, 2)
model.add(Convolution2D(24, 2, 2))
model.add(Activation('relu'))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
Для компиляции, я использую binary_crossentropy потери
model.compile(loss='binary_crossentropy', optimizer='sgd', class_mode='binary')
точность колеблется, но она достигает конечного значения 0,75 после каждой эпохи. Есть ли что-нибудь, что мне не хватает? Есть ли что-нибудь, что я должен изменить или добавить, чтобы это работало?
Почему это не было бы хорошей проблемой для cnn? – maz