You use the documented interfaces. They are good for you.
You can use the non-documented interfaces, they will break for you and you get to keep the pieces.
The functions will be mostly identical in function at the moment.
So the back story is:

ATen native (i.e. non-TH… legacy) doesn’t know about namespaces at this point,
this causes, at the moment, all “public” ATen functions to show up as torch.XXX,
because there also is a C++ interface, you cannot rename everything with “_” as one might think of doing,
so things showing up in torch.XXX when they’re documented to live in torch.nn.XXX accidental and a small bug likely to be fixed at some point of time.

Best regards
Thomas