class_docstr: ConvNCFBPRLoss, based on Bayesian Personalized Ranking,
  
  Shape:
      - Pos_score: (N)
      - Neg_score: (N), same shape as the Pos_score
      - Output: scalar.
  
  Examples::
  
      >>> loss = ConvNCFBPRLoss()
      >>> pos_score = torch.randn(3, requires_grad=True)
      >>> neg_score = torch.randn(3, requires_grad=True)
      >>> output = loss(pos_score, neg_score)
      >>> output.backward()
class_docstr_tok: ["ConvNCFBPRLoss",",","based","on","Bayesian","Personalized","Ranking",",","Shape",":","-","Pos_score",":","(","N",")","-","Neg_score",":","(","N",")",",","same","shape","as","the","Pos_score","-","Output",":","scalar",".","Examples",":",":",">",">",">","loss","=","ConvNCFBPRLoss","(",")",">",">",">","pos_score","=","torch.randn","(","3",",","requires_grad=True",")",">",">",">","neg_score","=","torch.randn","(","3",",","requires_grad=True",")",">",">",">","output","=","loss","(","pos_score",",","neg_score",")",">",">",">","output.backward","(",")"]
code: def __init__(self):
      super(ConvNCFBPRLoss, self).__init__()
  
file_path: RecBole/recbole/model/general_recommender/convncf.py
imports: import torch
  import torch.nn
  import copy
  from recbole.model.abstract_recommender import GeneralRecommender
  from recbole.model.layers import MLPLayers, CNNLayers
  from recbole.model.general_recommender.bpr import BPR
  from recbole.utils import InputType
label_desc: Use image node_id 1 to create a new ConvNCFBPRLoss object from inherited base classes: nn with example: obj = ConvNCFBPRLoss()