Speeding up the trainning - RNN with LSTM

Dear all, I am trying to train a LSTM for energy demand forecast but it takes too long. I do not understand why because the model looks “simple” and there is no much data. Might it be because I am not using the DataLoader? How could I use it with RNN since I have a sequence?

Complete code is in Colab: https://colab.research.google.com/drive/130rG8_j1Lf8RQoVRrfXCeo5h_CcC5NU6?usp=sharing

The interesting part to be improved may be this:

for seq, y_train in train_data:

         optimizer.zero_grad()

         model.hidden = (torch.zeros(1,1,model.hidden_size), 

                         torch.zeros(1,1,model.hidden_size)) 
      
         y_pred = model(seq) 

         loss = criterion(y_pred, y_train) 

         loss.backward() 

         optimizer.step() 

Thanks in advance to anyone helping me.