У меня есть набор данных из 1680 изображений примеров языка жестов.Набор данных разделен на 7 пользователей, каждый из которых выполняет по 10 раз каждую из 24 английских букв (без J и Z).Моя цель - определить, какое письмо представлено.
Я выбрал 6 пользователей для поезда и одного пользователя для теста.
Моя нейронная сеть выглядит так:
model = keras.models.Sequential()
model.add(keras.layers.Conv2D(32, (5, 5), input_shape=(128, 128, 3)))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.MaxPooling2D())
model.add(keras.layers.Conv2D(64, (5, 5)))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.MaxPooling2D())
model.add(keras.layers.Conv2D(128, (5, 5)))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.MaxPooling2D())
model.add(BatchNormalization())
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(512))
model.add(BatchNormalization())
model.add(keras.layers.Activation('relu'))
model.add(keras.layers.Dense(24))
model.add(keras.layers.Activation('softmax'))
x_train, x_test, y_train, y_test = split_train_test(images, users)
opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6)
model.compile(loss='categorical_crossentropy',
optimizer=opt,
metrics=['accuracy'])
history = model.fit(x_train, y_train, batch_size=30, epochs=10,
validation_data=(x_test, y_test)
).history
Но лучшая точность, которую я получаю, составляет 80%.Любые идеи, как улучшить?