Вы должны знать, что в RRN вычисление обратной функции для последовательности длиной 420000 происходит чрезвычайно медленно. Если вы запускаете свой код на компьютере с графическим процессором (или google colab) и добавляете следующие строки перед для l oop, выполнение кода завершается менее чем за две минуты.
rnn = rnn.cuda()
train_X = train_X.cuda()
train_Y = train_Y.cuda()
Обратите внимание, что по умолчанию второе входное измерение, переданное в RNN, будет считаться размером пакета. Поэтому, если 420000 - это количество пакетов, передайте batch_first=True
конструктору RNN.
self.rnn = nn.RNN(input_size, hidden_size, num_layers, batch_first=True)
Это значительно ускорит процесс (менее одной секунды в google colab). Однако, если это не так, попробуйте разделить последовательности на более мелкие части и увеличить размер пакета с 3 до большего значения.