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 construct_critic_layers(self, layer_dims):
      mlp_modules = []
      mlp_modules.append(nn.BatchNorm1d(3))
      for i, (d_in, d_out) in enumerate(
          zip(layer_dims[:-1], layer_dims[1:])
      ):
          mlp_modules.append(nn.Linear(d_in, d_out))
          if i != len(layer_dims[:-1]) - 1:
              mlp_modules.append(nn.ReLU())
          else:
              mlp_modules.append(nn.Sigmoid())
      return nn.Sequential(*mlp_modules)
  
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 7 for calling the RaCT obj's underlying member method code with example usage: obj.construct_critic_layers(layer_dims) and returns: nn