class_docstr: Collaborative Denoising Auto-Encoder (CDAE) is a recommendation model
  for top-N recommendation that utilizes the idea of Denoising Auto-Encoders.
  We implement the the CDAE model with only user dataloader.
class_docstr_tok: ["Collaborative","Denoising","Auto-Encoder","(","CDAE",")","is","a","recommendation","model","for","top-N","recommendation","that","utilizes","the","idea","of","Denoising","Auto-Encoders",".","We","implement","the","the","CDAE","model","with","only","user","dataloader","."]
code: def forward(self, x_items, x_users):
      h_i = self.dropout(x_items)
      h_i = self.h_item(h_i)
      h_u = self.h_user(x_users)
      h = torch.add(h_u, h_i)
      h = self.h_act(h)
      out = self.out_layer(h)
      return out
  
file_path: RecBole/recbole/model/general_recommender/cdae.py
imports: import torch
  import torch.nn
  from recbole.model.abstract_recommender import AutoEncoderMixin, GeneralRecommender
  from recbole.model.init import xavier_normal_initialization
  from recbole.utils import InputType
label_desc: Use image node_id 2 for calling the CDAE obj's underlying member method code with example usage: obj.forward(x_items, x_users) and returns: out