AdaptiveLogSoftmaxWithLoss
class torch.nn.AdaptiveLogSoftmaxWithLoss(in_features, n_classes, cutoffs, div_value=4.0, head_bias=False, device=None, dtype=None)
Efficient softmax approximation as described in Efficient softmax
   approximation for GPUs by Edouard Grave, Armand Joulin, Moustapha
   CissÃ©, David Grangier, and HervÃ© JÃ©gou.
Adaptive softmax is an approximate strategy for training models
   with large output spaces. It is most effective when the label
   distribution is highly imbalanced, for example in natural language
   modelling, where the word frequency distribution approximately
   follows the Zipf's law.
Adaptive softmax partitions the labels into several clusters,
   according to their frequency. These clusters may contain different
   number of targets each. Additionally, clusters containing less
   frequent labels assign lower dimensional embeddings to those
   labels, which speeds up the computation. For each minibatch, only