Hi,
I have designed a regression model made up of CNN and LSTM. In the forward pass, first I put CNN and use its output for LSTM. Then I compute the score.
The problem is that, after the third epoch, LOSS remains constant. I tested different loss functions(L1Loss.MSEloss, … ), and even optimizers such as AdamW, adam, …, but there is no difference.
Moreover, I checked both output and the Last Hidden Layer of my  LSTM to compute the score. Again, I couldn’t see any significant changes.
Herein lies my code.
criterion = torch.nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.01)
print("Training for %d epochs..." % N_EPOCHS)
for epoch in range(1, N_EPOCHS + 1):
     for i, (xA, xB, score) in enumerate(train_loader2, 1):
          predicted_score = model(xA, xB)
          optimizer.zero_grad()
          loss = criterion(predicted_score,  score)
          total_loss += loss.item()
          loss.backward()
          optimizer.step()
        
          if i % 20 == 0:
             print('[{}] Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.2f}'.format(
                time_since(start), epoch,  i *
                len(xA), len(train_loader.dataset),
                100. * i * len(xA) / len(train_loader.dataset),
                total_loss / i * len(xA)))

Besides, my result :
[0m 3s] Train Epoch: 1 [1000/4500 (22%)]	Loss: 4.25
[0m 5s] Train Epoch: 1 [2000/4500 (44%)]	Loss: 2.97
[0m 6s] Train Epoch: 1 [3000/4500 (67%)]	Loss: 3.08
[0m 8s] Train Epoch: 1 [4000/4500 (89%)]	Loss: 2.67
[0m 11s] Train Epoch: 2 [1000/4500 (22%)]	Loss: 2.69
[0m 13s] Train Epoch: 2 [2000/4500 (44%)]	Loss: 2.19
[0m 15s] Train Epoch: 2 [3000/4500 (67%)]	Loss: 2.56
[0m 16s] Train Epoch: 2 [4000/4500 (89%)]	Loss: 2.28
.
.
[14m 0s] Train Epoch: 100 [1000/4500 (22%)]	Loss: 2.69
[14m 2s] Train Epoch: 100 [2000/4500 (44%)]	Loss: 2.19
[14m 4s] Train Epoch: 100 [3000/4500 (67%)]	Loss: 2.56
[14m 6s] Train Epoch: 100 [4000/4500 (89%)]	Loss: 2.28

I’d be grateful if someone could inform me why this might happen.