Использование Keras для предсказания следующего слова - PullRequest
0 голосов
/ 10 января 2019

У меня есть проблема с предсказанием последовательности, к которой я отношусь как к языковой модели. Мои данные содержат 4 варианта (1-4) и вознаграждение (1-100). Я начал использовать Keras, но не уверен, что он обладает необходимой гибкостью.

  1. Вот так выглядит архитектура модели: Train

Я не уверен насчет фазы тестирования. Один из вариантов - выборка:

2

И я не уверен, как оценить вывод этой опции против моего набора тестов.

Другой вариант - дать обученной модели последовательность и позволить ей отобразить значение последнего временного шага (например, дать предложение и предсказать последнее слово) - но все еще иметь x = t_hat.

это возможно в Керасе? Я не могу найти примеры, подобные этому.

  1. Помимо передачи предыдущего выбора (или предыдущего слова) в качестве ввода, мне нужно передать вторую особенность, которая является значением вознаграждения. На выбор доступно горячее кодирование, как добавить одно число с закодированным вектором?

РЕДАКТИРОВАТЬ: Это этап обучения (еще не сделали выборку):

model = Sequential()
model.add(LSTM(64, input_shape=(seq_length, X_train.shape[2]) , return_sequences=True))
model.add(Dense(y_cat_train.shape[2], activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_cat_train, epochs=100, batch_size=10, verbose=2)

1 Ответ

0 голосов
/ 10 января 2019

Google разработал Keras для поддержки всех видов потребностей, и это должно соответствовать вашим потребностям - ДА.

В вашем случае вы используете ячейки LSTM с произвольным числом единиц (обычно 64 или 128), с: a <1> , <2> , a <3> ... a в качестве скрытых параметров. Примечание: ваш последний индекс не должен быть 3, вместо этого должен быть Ty.

Я бы предложил проверить функцию https://keras.io/utils/#to_categorical для преобразования ваших данных в закодированный формат "one-hot".

...