Hi,
There is no reason AFAIK.
Both the class and function version use the exact same implementation and the two exist just to make writing NN nicer.
If you write a custom forward function for your Module, you can use the function version. If you use constructs like Sequential, you will have to use the class version.