Я использую lstm из pytorch в своем коде для прогнозирования временных рядов. пока я пишу этот код класса LSTM_model (nn.Module): def __init __ (self, input_size, output_size, hidden_size, num_layers, dropout): ...

1
David FIM 12 Янв 2021 в 15:44

1 ответ

Лучший ответ

Мне потребовалось время, чтобы выяснить, но вы неправильно инициализируете свой nn.LSTM из-за позиционных аргументов.

self.lstm = nn.LSTM(self.input_size, self.hidden_size,
    self.num_layers, self.dropout, batch_first=True)

Вышеупомянутое присвоит self.dropout аргументу с именем bias:

>>> model.lstm
LSTM(1, 128, num_layers=2, bias=0, batch_first=True)

Вместо этого вы можете использовать аргументы ключевого слова:

self.lstm = nn.LSTM(
    input_size=self.input_size, 
    hidden_size=self.hidden_size, 
    num_layers=self.num_layers, 
    dropout=self.dropout, 
    batch_first=True)

Что даст желаемый результат:

>>> model.lstm
LSTM(1, 128, num_layers=2, batch_first=True)
1
Ivan 12 Янв 2021 в 18:48