#keras #lstm #recurrent-neural-network
#keras #lstm #рекуррентная нейронная сеть
Вопрос:
Я пытаюсь построить сеть кодировщика-декодера для классификации видеоданных. Читая документацию Keras для ячеек LSTM, он ожидает фиксированное количество time_step
для ячейки. Однако данные, с которыми я имею дело, имеют разное количество кадров для каждой категории. Я думаю, что могу выбрать самый длинный и дополнить остальные начальными кадрами или конечными кадрами, но я думаю, что модель будет смещена в сторону тех, у кого похожие кадры. Есть ли способ, которым я могу вводить входные данные с разными time_step
значениями в ячейку LSTM в Keras? Я мог бы поместить токен <start>
и <end>
в начало и конец последовательности, чтобы сообщить сети, когда делать прогноз, но я не уверен, как это сделать.
Любая помощь была бы очень признательна, спасибо!
Комментарии:
1. Создайте отдельные сети для примеров с одинаковыми временными шагами.
Ответ №1:
Читая документацию Keras для ячеек LSTM, он ожидает фиксированное количество time_step для ячейки.
Я не знаю, откуда вы берете эту информацию, но вы можете передать последовательность переменной длины (переменный time_step dim) для lstm. Класс LSTM является дочерним по отношению к классу RNN, как указано в документации keras RNN.
Этот слой поддерживает маскирование входных данных с переменным количеством временных шагов
Для того, чтобы передать последовательность переменной длины в LSTM, размер временных шагов должен быть None
. Например
model = Sequential()
model.add(LSTM(32, input_shape=(None, 10)))