У меня есть коллекция изображений с открытыми и закрытыми глазами.
Данные собираются из текущего каталога с помощью keras следующим образом:
batch_size = 64
N_images = 84898 #total number of images
datagen = ImageDataGenerator(
rescale=1./255)
data_iterator = datagen.flow_from_directory(
'./Eyes',
shuffle = 'False',
color_mode='grayscale',
target_size=(h, w),
batch_size=batch_size,
class_mode = 'binary')
У меня есть файл .csv с состояние каждого глаза.
Я построил эту Последовательную модель:
num_filters = 8
filter_size = 3
pool_size = 2
model = Sequential([
Conv2D(num_filters, filter_size, input_shape=(90, 90, 1)),
MaxPooling2D(pool_size=pool_size),
Flatten(),
Dense(16, activation='relu'),
Dense(2, activation='sigmoid'), # Two classes. one for "open" and another one for "closed"
])
Составление модели.
model.compile(
'adam',
loss='categorical_crossentropy',
metrics=['accuracy']
)
Наконец, я сопоставил все данные со следующим:
model.fit(
train_images,
to_categorical(train_labels),
epochs=3,
validation_data=(test_images, to_categorical(test_labels)),
)
Результат колеблется около 50%, и я не понимаю почему.