F.convXX is a functional form of convolution where you will manually have to put filters and bias tensors and manage their operation during testing and training time, which is useful for custom implementation of functionality and it does not require initialisation in the __init__  while if you are just using it as the generic convolution I suggest you use the one present in nn.ConvXX if you will look at its source code in the back it also calls f.convXX but manages the filters and bias tensors for you and their operations during test and train time and it can make use of features of nn.Module like self.training flag for example.