Смешанный вход one_hot и float

Я пытаюсь обучить модели слоев LSTM данным временных рядов категориального (one_hot) действия (колл / фолд / рейз) и времени. Так пример временного ряда из 3 раундов, где игрок 2x коллировал, а затем сбросил карты.

  #Call  #0.5s    # Call    #0.3s   #Fold, 1.5s

[[[1,0,0], 0.5], [[1,0,0], 0.3], [[0,1,0], 1.5]]

Категориальный массив вызова / сворачивания / повышения не может быть обработан первым слоем (LSTM), и я не могу использовать простой уровень внедрения из-за некатегориального времени.

Первый уровень - model.add(LSTM(500, return_sequence =True, input_shape=(3, 2)))

Я пытался изменить input_shape, но у меня ничего не получалось. Любые идеи, как представлять one_hot и плавать в один раз вход?

1 ответ

Решение

Вы можете просто объединить, не нужно встраивать, так как ваша кодировка one-hot не слишком большая размерность, а one-hot - это вложение само по себе.

Поэтому я бы попробовал последовательности векторов:

[[1,0,0,0.5], [1,0,0,0.3], [0,1,0,1.5]]

и LSTM или любой слой, который вы будете использовать, выяснят, что первые 3 значения означают действие, а последнее - что-то другое (время), не беспокойтесь об этом.

model.add(LSTM(500, return_sequences=True, input_shape=(3, 2)))

должно сработать.

Другие вопросы по тегам