I wanted to write a custom loss function by subclassing the _Loss
superclass. At first I didn’t pay much attention to the underscore until the following import failed:
from torch.nn.modules import _Loss
After that I noticed that _Loss
is not included in the imports within the __init__.py
.
While this can easily be circumvented by importing it directly
from torch.nn.modules.loss import _Loss
I was left wondering what the intentions might be.
Shall custom loss functions not subclass _Loss
but rather module
directly? If not, why protect and ‘hide’ it?