MultiMarginLoss
class torch.nn.MultiMarginLoss(p=1, margin=1.0, weight=None, size_average=None, reduce=None, reduction='mean')
Creates a criterion that optimizes a multi-class classification
   hinge loss (margin-based loss) between input x (a 2D mini-batch
   Tensor) and output y (which is a 1D tensor of target class
   indices, 0 \leq y \leq \text{x.size}(1)-1):
For each mini-batch sample, the loss in terms of the 1D input x and
   scalar output y is:
  \text{loss}(x, y) = \frac{\sum_i \max(0, \text{margin} - x[y] +
  x[i])^p}{\text{x.size}(0)}

where i \in \left{0, \; \cdots , \; \text{x.size}(0) - 1\right}
   and i \neq y.
Optionally, you can give non-equal weighting on the classes by
   passing a 1D "weight" tensor into the constructor.
The loss function then becomes:
  \text{loss}(x, y) = \frac{\sum_i \max(0, w[y] * (\text{margin} -
  x[y] + x[i]))^p}{\text{x.size}(0)}

Parameters: