In the document of LSTM, it says:

dropout – If non-zero, introduces a dropout layer on the outputs of each RNN layer except the last layer

I have two questions:

Does it apply dropout at every time step of the LSTM?
If there is only one LSTM layer, will the dropout still be applied?

And it’s very strange that even I set dropout=1, it seems have no effects on my network performence. Like this:

self.lstm1 = nn.LSTM(input_dim, lstm_size1, dropout=1, batch_first=False)

this is only 1 layer, so I doubt if the dropout really works.