Я пытаюсь создать модель, которая распознает статические жесты, используя CNN.У меня есть 26 жестов и 2400 изображений для всех жестов.Однако в модели отсутствует входной слой и ошибка 96%.
Я новичок, поэтому понятия не имею о большинстве вещей.Я пытался изменить некоторые вещи, но это не помогло.
/// это моя модель
def cnn_model():
num_of_classes = get_num_of_classes()
model = Sequential()
model.add(Conv2D(16, (2,2), input_shape=(image_x, image_y, 1), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'))
model.add(Conv2D(32, (5,5), activation='relu'))
model.add(MaxPooling2D(pool_size=(5, 5), strides=(5, 5), padding='same'))
model.add(Conv2D(64, (5,5), activation='relu'))
#model.add(MaxPooling2D(pool_size=(5, 5), strides=(5, 5), padding='same'))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_of_classes, activation='softmax'))
sgd = optimizers.SGD(lr=1e-2)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
filepath="cnn_model_keras2.h5"
checkpoint1 = ModelCheckpoint(filepath, monitor='val_acc', verbose=1, save_best_only=True, mode='max')
#checkpoint2 = ModelCheckpoint(filepath, monitor='val_loss', verbose=1, save_best_only=True, mode='min')
callbacks_list = [checkpoint1]
from keras.utils import plot_model
plot_model(model, to_file='model.png', show_shapes=True)
return model, callbacks_list
/// training and testing
model, callbacks_list = cnn_model()
model.summary()
model.fit(train_images, train_labels, validation_data=(test_images, test_labels), epochs=20, batch_size=500, callbacks=callbacks_list)
scores = model.evaluate(test_images, test_labels, verbose=0)
Я ожидаю максимум 20% потерь, но потеря 96%.Кроме того,
ожидаемое резюме модели:
https://imgur.com/66Yggvh
что я получил:
https://imgur.com/AzpgvFN
Это мой первыйвопрос на любом форуме, поэтому, пожалуйста, потерпите меня.