bpr_loss¶
- paddle.fluid.layers.loss. bpr_loss ( input, label, name=None ) [source]
- 
         Bayesian Personalized Ranking Loss Operator This operator belongs to pairwise ranking loss. Label is the desired item. The loss at a given point in one session is defined as: \[Y[i] = 1/(N[i] - 1) * \sum_j{\log(\sigma(X[i, Label[i]]-X[i, j]))}\]Learn more details by reading paper <session-based recommendations with recurrent neural networks>. - Parameters
- 
           - input (Variable|list) – a 2-D tensor with shape [N x D], where N is the batch size and D is the number of positive classes and negative classes This input is not probability but logits. 
- label (Variable|list) – the ground truth which is a 2-D tensor. label is a tensor<int64> with shape [N x 1]. 
- name (str|None) – A name for this layer(optional). If set None, the layer will be named automatically. Default: None. 
 
- Returns
- 
           A 2-D tensor with shape [N x 1], the bpr loss. 
 Examples import paddle.fluid as fluid import paddle paddle.enable_static() neg_size = 10 label = fluid.data( name="label", shape=[3, 1], dtype="int64") predict = fluid.data( name="predict", shape=[3, neg_size + 1], dtype="float32") cost = fluid.layers.bpr_loss(input=predict, label=label) 
