Rate this Page

HingeEmbeddingLoss#

classtorch.nn.modules.loss.HingeEmbeddingLoss(margin=1.0,size_average=None,reduce=None,reduction='mean')[source]#

Measures the loss given an input tensorxx and a labels tensoryy(containing 1 or -1).This is usually used for measuring whether two inputs are similar ordissimilar, e.g. using the L1 pairwise distance asxx, and is typicallyused for learning nonlinear embeddings or semi-supervised learning.

The loss function fornn-th sample in the mini-batch is

ln={xn,if  yn=1,max{0,marginxn},if  yn=1,l_n = \begin{cases} x_n, & \text{if}\; y_n = 1,\\ \max \{0, margin - x_n\}, & \text{if}\; y_n = -1,\end{cases}

and the total loss functions is

(x,y)={mean(L),if reduction=‘mean’;sum(L),if reduction=‘sum’.\ell(x, y) = \begin{cases} \operatorname{mean}(L), & \text{if reduction} = \text{`mean';}\\ \operatorname{sum}(L), & \text{if reduction} = \text{`sum'.}\end{cases}

whereL={l1,,lN}L = \{l_1,\dots,l_N\}^\top.

Parameters
  • margin (float,optional) – Has a default value of1.

  • size_average (bool,optional) – Deprecated (seereduction). By default,the losses are averaged over each loss element in the batch. Note that forsome losses, there are multiple elements per sample. If the fieldsize_averageis set toFalse, the losses are instead summed for each minibatch. Ignoredwhenreduce isFalse. Default:True

  • reduce (bool,optional) – Deprecated (seereduction). By default, thelosses are averaged or summed over observations for each minibatch dependingonsize_average. Whenreduce isFalse, returns a loss perbatch element instead and ignoressize_average. Default:True

  • reduction (str,optional) – Specifies the reduction to apply to the output:'none' |'mean' |'sum'.'none': no reduction will be applied,'mean': the sum of the output will be divided by the number ofelements in the output,'sum': the output will be summed. Note:size_averageandreduce are in the process of being deprecated, and in the meantime,specifying either of those two args will overridereduction. Default:'mean'

Shape:
  • Input:()(*) where* means, any number of dimensions. The sum operationoperates over all the elements.

  • Target:()(*), same shape as the input

  • Output: scalar. Ifreduction is'none', then same shape as the input

forward(input,target)[source]#

Runs the forward pass.

Return type

Tensor