Hi. I guess there are three way to use activation function in a custom module:

Use nn.Softmax() in the initializer in the custom model.
Use nn.softmax() in the forward function in the custom model.
Use nn.functional.softmax() in the forward function in the custom model.

What are the differences among them and what is the proper way to use an activation function in my custom model?