matchzoo.losses

Package Contents

class matchzoo.losses.RankCrossEntropyLoss(num_neg:int=1)

Bases: torch.nn.Module

Creates a criterion that measures rank cross entropy loss.

__constants__ = ['num_neg']
num_neg

num_neg getter.

forward(self, y_pred:torch.Tensor, y_true:torch.Tensor)

Calculate rank cross entropy loss.

Parameters:
  • y_pred – Predicted result.
  • y_true – Label.
Returns:

Rank cross loss.

class matchzoo.losses.RankHingeLoss(num_neg:int=1, margin:float=1.0, reduction:str='mean')

Bases: torch.nn.Module

Creates a criterion that measures rank hinge loss.

Given inputs \(x1\), \(x2\), two 1D mini-batch Tensors, and a label 1D mini-batch tensor \(y\) (containing 1 or -1).

If \(y = 1\) then it assumed the first input should be ranked higher (have a larger value) than the second input, and vice-versa for \(y = -1\).

The loss function for each sample in the mini-batch is:

\[loss_{x, y} = max(0, -y * (x1 - x2) + margin)\]
__constants__ = ['num_neg', 'margin', 'reduction']
num_neg

num_neg getter.

margin

margin getter.

forward(self, y_pred:torch.Tensor, y_true:torch.Tensor)

Calculate rank hinge loss.

Parameters:
  • y_pred – Predicted result.
  • y_true – Label.
Returns:

Hinge loss computed by user-defined margin.