class_docstr: Graph Convolutional Matrix Completion (GCMC)
  
  Parameters
  ----------
  name: string, default: 'GCMC'
      The name of the recommender model.
  
  max_iter: int, default: 2000
      Maximum number of iterations or the number of epochs for SGD
  
  learning_rate: float, default: 0.01
      The learning rate for SGD
  
  optimizer: string, default: 'adam'. Supported values: 'adam','sgd'.
      The optimization method used for SGD
  
  activation_func: string, default: 'leaky'
      The activation function used in the GCMC model. Supported values:
      ['leaky', 'linear','sigmoid','relu', 'tanh']
  
  gcn_agg_units: int, default: 500
      The number of units in the graph convolutional layers
  
  gcn_out_units: int, default: 75
      The number of units in the output layer
  
  gcn_dropout: float, default: 0.7
      The dropout rate for the graph convolutional layers
  
  gcn_agg_accum: string, default:'stack'
      The graph convolutional layer aggregation type. Supported values:
      ['stack', 'sum']
  
  share_param: bool, default: False
      Whether to share the parameters in the graph convolutional layers
  
  gen_r_num_basis_func: int, default: 2
      The number of basis functions used in the generating rating function
  
  train_grad_clip: float, default: 1.0
      The gradient clipping value for training
  
  train_valid_interval: int, default: 1
      The validation interval for training
  
  train_early_stopping_patience: int, default: 100
      The patience for early stopping
  
  train_min_learning_rate: float, default: 0.001
      The minimum learning rate for SGD
  
  train_decay_patience: int, default: 50
      The patience for learning rate decay
  
  train_lr_decay_factor: float, default: 0.5
      The learning rate decay factor
  
  trainable: boolean, default: True
      When False, the model is not trained and Cornac
  
  verbose: boolean, default: True
      When True, some running logs are displayed
  
  seed: int, default: None
      Random seed for parameters initialization
  
  References
  ----------
  * van den Berg, R., Kipf, T. N., & Welling, M. (2018). Graph Convolutional Matrix Completion.
code: def __init__(
      self,
      name="GCMC",
      max_iter=2000,
      learning_rate=0.01,
      optimizer="adam",
      activation_func="leaky_relu",
      gcn_agg_units=500,
      gcn_out_units=75,
      gcn_dropout=0.7,
      gcn_agg_accum="stack",
      share_param=False,
      gen_r_num_basis_func=2,
      train_grad_clip=1.0,
      train_valid_interval=1,
      train_early_stopping_patience=100,
      train_min_learning_rate=0.001,
      train_decay_patience=50,
      train_lr_decay_factor=0.5,
      trainable=True,
      verbose=False,
      seed=None,
  ):
      super().__init__(name=name, trainable=trainable, verbose=verbose)
  
      # architecture params
      self.activation_func = activation_func
      self.gcn_agg_units = gcn_agg_units
      self.gcn_out_units = gcn_out_units
      self.gcn_dropout = gcn_dropout
      self.gcn_agg_accum = gcn_agg_accum
      self.share_param = share_param
      self.gen_r_num_basis_func = gen_r_num_basis_func
  
      # training params
      self.max_iter = max_iter
      self.learning_rate = learning_rate
      self.optimizer = optimizer
      self.train_grad_clip = train_grad_clip
      self.train_valid_interval = train_valid_interval
      self.train_early_stopping_patience = train_early_stopping_patience
      self.train_min_learning_rate = train_min_learning_rate
      self.train_decay_patience = train_decay_patience
      self.train_lr_decay_factor = train_lr_decay_factor
      self.seed = seed
  
file_path: cornac/cornac/models/gcmc/recom_gcmc.py
imports: import numpy
  from ..recommender import Recommender
label_desc: Use image node_id 1 to create a new GCMC object from inherited base classes: Recommender with example: obj = GCMC(name, max_iter, learning_rate, optimizer, activation_func, gcn_agg_units, gcn_out_units, gcn_dropout, gcn_agg_accum, share_param, gen_r_num_basis_func, train_grad_clip, train_valid_interval, train_early_stopping_patience, train_min_learning_rate, train_decay_patience, train_lr_decay_factor, trainable, verbose, seed)