В настоящее время я учусь использовать nn.LSTM с pytorch, и мне пришлось спросить, как работает эта функция.
В основном я пытаюсь передать свою матрицу набора данных (M xN).Поскольку набор данных представляет собой матрицу, я хотел рекурсивно (в виде временных шагов) подать набор данных в сеть LSTM с помощью Dataloader (utils.data.Dataset).
Точка, в которой я запуталсябыл размером input (seq_len, batch, input_size)
Допустим, я получаю свой data_loader с batch_size = 10.Чтобы сгенерировать train_loader с правильной формой, мне пришлось преобразовать предыдущий размер (M x N) в размер, включающий в себя sequence_length, которое можно просто преобразовать в (M / seq_len, seq_len, N).
Тогда размер ввода моего nn.LSTM будет таким: (M / seq_len / batch_size, seq_len, N)
Итак, мой главный вопрос:
Если я передам этот размер данных в модель LSTM nn.LSTM (N, hidden_size), модель LSTM уже выполняетрекурсивная прямая передача в пределах всего пакета?
Я также запутался с seq_len, в то время как seq_len> 1, выход получит измерение seq_len.Означает ли это, что выходные данные содержат рекурсивные операции с последовательностями?
Я не уверен, что разъяснил вопросы, но мое понимание становится довольно запутанным .. lol Надеюсь, кто-нибудь мог помочья организую правильное понимание.