class_docstr: Collaborative Denoising Auto-Encoder (RecVAE) is a recommendation model
  for top-N recommendation with implicit feedback.
  
  We implement the model following the original author
class_docstr_tok: ["Collaborative","Denoising","Auto-Encoder","(","RecVAE",")","is","a","recommendation","model","for","top-N","recommendation","with","implicit","feedback",".","We","implement","the","model","following","the","original","author"]
code: def forward(self, rating_matrix, dropout_prob):
      mu, logvar = self.encoder(
          rating_matrix, dropout_prob=dropout_prob
      )
      z = self.reparameterize(mu, logvar)
      x_pred = self.decoder(z)
      return x_pred, mu, logvar, z
  
imports: import numpy
  from copy import deepcopy
  import torch
  import torch.nn
  import torch.nn.functional
  from recbole.model.abstract_recommender import GeneralRecommender, AutoEncoderMixin
  from recbole.model.init import xavier_normal_initialization
  from recbole.utils import InputType
label_desc: Use image node_id 3 for calling the RecVAE obj's underlying member method code with example usage: obj.forward(rating_matrix, dropout_prob) and returns: x_pred,  mu,  logvar,  z