class_docstr: SGL is a GCN-based recommender model.
  
  SGL supplements the classical supervised task of recommendation with an auxiliary
  self supervised task, which reinforces node representation learning via self-
  discrimination.Specifically,SGL generates multiple views of a node, maximizing the
  agreement between different views of the same node compared to that of other nodes.
  SGL devises three operators to generate the views — node dropout, edge dropout, and
  random walk — that change the graph structure in different manners.
  
  We implement the model following the original author with a pairwise training mode.
docstr: Override train method of base class.The subgraph is reconstructed each time it is called.
docstr_tok: ["Override","train","method","of","base","class.The","subgraph","is","reconstructed","each","time","it","is","called","."]
code: def train(self, mode: bool = True):
      r"""Override train method of base class.The subgraph is reconstructed each time it is called."""
      T = super().train(mode=mode)
      if mode:
          self.graph_construction()
      return T
  
imports: import numpy
  import scipy.sparse
  import torch
  from recbole.model.abstract_recommender import GeneralRecommender
  from recbole.model.init import xavier_uniform_initialization
  from recbole.model.loss import BPRLoss, EmbLoss
  from recbole.utils import InputType
  import torch.nn.functional
label_desc: Use image node_id 12 for calling the SGL obj's underlying member method code with example usage: obj.train(mode) and returns: T