criterion = nn.CosineEmbeddingCriterion(margin)
Creates a criterion that measures the loss given an input
x = {x1,x2}, a table of two tensors, and a label y (1 or -1):
This is used for measuring whether two inputs are similar
or dissimilar, using the cosine distance, and is typically used for
learning nonlinear embeddings or semi-supervised learning.
margin should be a number from -1 to 1, 0 to 0.5 is suggested.
Forward and Backward have to be used alternately. If margin is missing, the default value is 0.
The loss function is:
loss(x,y) = forward(x,y) = 1-cos(x1, x2), if y=1
= max(0,cos(x1, x2)-margin), if y=-1