I’m sorry, but I’m not sure what dummy input shape means. Do you mean posting the input shape of my data?  The input size is [batch_size, timestep, input_size] = [128, 800, 1]. The training code is listed below.
def train_model(epochs, train_loader, model, learning_rate=0.001, interval_print=100):
    
    if torch.cuda.is_available():
        print("the model is in cuda now")
        model = model.cuda()    
    torch.backends.cudnn.enabled = False
    model.train()
    optimizer = optim.Adam(model.parameters(), lr=learning_rate)
    scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=5, gamma=0.8)
    criterion = nn.MSELoss()
    for epoch in range(epochs):
        scheduler.step()
        for batch_idx, (wave, label, condition) in enumerate(train_loader):               
            
            input= input.view(-1, SIGNAL_LENGTH//INPUT_SIZE, INPUT_SIZE )     #[batch, timestep, input size] = [128, 800, 1]
            wave = wave.cuda()
            label = label.cuda()
            label = label.view(-1, SIGNAL_LENGTH//INPUT_SIZE, INPUT_SIZE)
            rnn_out = model(wave)
            
            loss = criterion( rnn_out ,label)     # try to prevent the loss suface from being too coarse
            loss_list.append(loss.item())
            optimizer.zero_grad()
            loss.backward()
            torch.nn.utils.clip_grad_norm_(model.parameters(), clipping_value)
            optimizer.step() 
            if batch_idx % interval_print == 0:              
                print("In Epoch: ", epoch+1, ", Batch Idx: ", batch_idx+1, "Training Loss: ", loss.item())
    print('end')    

Thanks