class_docstr: This is a abstract general recommender. All the general model should implement this class.
  The base general recommender class provide the basic dataset and parameters information.
class_docstr_tok: ["This","is","a","abstract","general","recommender",".","All","the","general","model","should","implement","this","class",".","The","base","general","recommender","class","provide","the","basic","dataset","and","parameters","information","."]
code: def __init__(self, config, dataset):
      super(GeneralRecommender, self).__init__()
  
      # load dataset info
      self.USER_ID = config["USER_ID_FIELD"]
      self.ITEM_ID = config["ITEM_ID_FIELD"]
      self.NEG_ITEM_ID = config["NEG_PREFIX"] + self.ITEM_ID
      self.n_users = dataset.num(self.USER_ID)
      self.n_items = dataset.num(self.ITEM_ID)
  
      # load parameters info
      self.device = config["device"]
  
imports: from logging import getLogger
  import numpy
  import torch
  import torch.nn
  from recbole.model.layers import FMEmbedding, FMFirstOrderLinear, FLEmbedding
  from recbole.utils import ModelType, InputType, FeatureSource, FeatureType, set_color
label_desc: Use image node_id 1 to create a new GeneralRecommender object from inherited base classes: AbstractRecommender with example: obj = GeneralRecommender(config, dataset)