В настоящее время я работаю над проверкой подписи в Интернете.Набор данных имеет переменную форму (x, 7), где x - это количество точек, которые человек использовал для подписи своей подписи.У меня есть следующая модель:
model = Sequential()
#CNN
model.add(Conv1D(filters=64, kernel_size=3, activation='sigmoid', input_shape=(None, 7)))
model.add(MaxPooling1D(pool_size=3))
model.add(Conv1D(filters=64, kernel_size=2, activation='sigmoid'))
#RNN
model.add(Masking(mask_value=0.0))
model.add(LSTM(8))
model.add(Dense(2, activation='softmax'))
opt = Adam(lr=0.0001)
model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])
model.summary()
print(model.fit(x_train, y_train, epochs=100, verbose=2, batch_size=50))
score, accuracy = model.evaluate(x_test,y_test, verbose=2)
print(score, accuracy)
Я знаю, что это может быть не самая лучшая модель, но я впервые строю нейронную сеть.Я должен использовать CNN и RNN, как это требуется для моего проекта с отличием.На данный момент я достигаю 0,5142 как наивысшей точности обучения и 0,54 точности тестирования.Я попытался увеличить количество эпох, изменить функцию активации, добавить больше слоев, переместить слои вокруг, изменить скорость обучения и оптимизатор.
Пожалуйста, поделитесь некоторыми советами по изменению моей модели или набора данных.Буду признателен за любую оказанную помощь.