class_docstr: RaCT is a collaborative filtering model which uses methods based on actor-critic reinforcement learning for training.
  
  We implement the RaCT model with only user dataloader.
class_docstr_tok: ["RaCT","is","a","collaborative","filtering","model","which","uses","methods","based","on","actor-critic","reinforcement","learning","for","training",".","We","implement","the","RaCT","model","with","only","user","dataloader","."]
code: def forward(self, rating_matrix):
      t = F.normalize(rating_matrix)
  
      h = F.dropout(t, self.drop_out, training=self.training) * (
          1 - self.drop_out
      )
      self.input_matrix = h
      self.number_of_seen_items = (h != 0).sum(dim=1)  # network input
  
      mask = (h > 0) * (t > 0)
      self.true_matrix = t * ~mask
      self.number_of_unseen_items = (self.true_matrix != 0).sum(
          dim=1
      )  # remaining input
  
      h = self.encoder(h)
  
      mu = h[:, : int(self.lat_dim / 2)]
      logvar = h[:, int(self.lat_dim / 2) :]
  
      z = self.reparameterize(mu, logvar)
      z = self.decoder(z)
      self.predict_matrix = z
      return z, mu, logvar
  
imports: import torch
  import torch.nn
  import torch.nn.functional
  import numpy
  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 4 for calling the RaCT obj's underlying member method code with example usage: obj.forward(rating_matrix) and returns: z,  mu,  logvar