The nn.Module is an interface to autograd that provides a lots of goodies while creating neural networks. There is also a functional interface torch.nn.functional. Compare both examples:
import torch.nn as nn
import torch.nn.functional as F
# creates a module which initializes weights etc
conv = nn.Conv2d(1, 1, 3)
# uses the weights and params initialized in the constructor
output = conv(input)

# use the functional interface, need to create weights beforehand
output2 = F.conv2d(input, weight) 

One of the functiinalities that comes with nn.Module is the hability to set if in training or evaluation mode, and the modules directly use that information inside. But the functional interface is agnostic to nn.Module, so you need to specify all the arguments to the function, including the training mode for functions that behave differently in train / eval