When you call the model directly, the internal __call__ function is used. Have a look at the code.
This function manages all registered hooks and calls forward afterwards.
That’s also the reason you should call the model directly, because otherwise your hooks might not work etc.