class_docstr: Probabilistic Collaborative Representation Learning.
  
  Parameters
  ----------
  k: int, optional, default: 100
      The dimension of the latent factors.
      
  z_dims: Numpy 1d array, optional, default: [300]
      The dimensions of the hidden intermdiate layers 'z' in the order         [dim(z_L), ...,dim(z_1)], please refer to Figure 1 in the orginal paper for more details.
  
  max_iter: int, optional, default: 300
      Maximum number of iterations (number of epochs) for variational PCRL.
      
  batch_size: int, optional, default: 300
      The batch size for SGD.
      
  learning_rate: float, optional, default: 0.001
      The learning rate for SGD.
  
  aux_info: see "cornac/examples/pcrl_example.py" in the GitHub repo for an example of how to use         cornac's graph modality provide item auxiliary data (e.g., context, text, etc.) for PCRL.
  
  name: string, optional, default: 'PCRL'
      The name of the recommender model.
  
  trainable: boolean, optional, default: True
      When False, the model is not trained and Cornac assumes that the model already         pre-trained (Theta, Beta and Xi are not None). 
      
  w_determinist: boolean, optional, default: True
      When True, determinist wheights "W" are used for the generator network,         otherwise "W" is stochastic as in the original paper.
  
  init_params: dictionary, optional, default: None
      List of initial parameters, e.g., init_params = {'G_s':G_s, 'G_r':G_r, 'L_s':L_s, 'L_r':L_r}.
      
      Theta: ndarray, shape (n_users, k)
          The expected user latent factors.
  
      Beta: ndarray, shape (n_items, k)
          The expected item latent factors.
  
      G_s: ndarray, shape (n_users, k)
          Represent the "shape" parameters of Gamma distribution over Theta.
          
      G_r: ndarray, shape (n_users, k)
          Represent the "rate" parameters of Gamma distribution over Theta. 
      
      L_s: ndarray, shape (n_items, k)
          Represent the "shape" parameters of Gamma distribution over Beta.
          
      L_r: ndarray, shape (n_items, k)
          Represent the "rate" parameters of Gamma distribution over Beta. 
      
  References
  ----------
  * Salah, Aghiles, and Hady W. Lauw. Probabilistic Collaborative Representation Learning for Personalized Item Recommendation.     In UAI 2018.
docstr: Predict the scores/ratings of a user for a list of items.
  
  Parameters
  ----------
  user_idx: int, required
      The index of the user for whom to perform score prediction.
  
  item_idx: int, optional, default: None
      The index of the item for which to perform score prediction.
      If None, scores for all known items will be returned.
  
  Returns
  -------
  res : A scalar or a Numpy array
      Relative scores that the user gives to the item or to all known items
code: def score(self, user_idx, item_idx=None):
      """Predict the scores/ratings of a user for a list of items.
  
      Parameters
      ----------
      user_idx: int, required
          The index of the user for whom to perform score prediction.
  
      item_idx: int, optional, default: None
          The index of the item for which to perform score prediction.
          If None, scores for all known items will be returned.
  
      Returns
      -------
      res : A scalar or a Numpy array
          Relative scores that the user gives to the item or to all known items
  
      """
  
      if item_idx is None:
          user_pred = self.Beta * self.Theta[user_idx, :].T
      else:
          user_pred = self.Beta[item_idx, :] * self.Theta[user_idx, :].T
      # transform user_pred to a flatten array
      user_pred = np.array(user_pred, dtype="float64").flatten()
  
      return user_pred
  
file_path: cornac/cornac/models/pcrl/recom_pcrl.py
imports: import numpy
  from ..recommender import Recommender
  from ..recommender import ANNMixin, MEASURE_DOT
label_desc: Use image node_id 3 for calling the PCRL obj's underlying member method code with example usage: obj.score(user_idx, item_idx) and returns: user_pred