In Tacotron 2 dropout is used in the decoder input during training and inference. This is one example where one can use F.dropout,  assuming it has the same behavior on model.train() and model.eval().
I’m assuming from pytorch’s dropout API torch.nn.functional.dropout(input, p=0.5, training=False, inplace=False), that it doesn’t automatically change if one calls net.train() and net.eval() with functional dropout inside the model.
I would be good to have one of the pytorch devs commenting on this, for example @apaszke.