code: def build_model(self, n_features, W_=None, bh_=None, bv_=None):
          
          self._create_placeholders(n_features)
          self._create_variables(n_features, W_, bh_, bv_)
  
          self._create_encode_layer()
          self._create_decode_layer()
  
          variables = [self.W_, self.bh_, self.bv_]
          regterm = Layers.regularization(variables, self.regtype, self.regcoef)
  
          self.cost = self.loss.compile(
              self.reconstruction, self.input_data_orig, regterm=regterm)
          self.train_step = self.trainer.compile(self.cost)
docs: Create the computational graph.
  
          Parameters
          ----------
  
          n_features : int
              Number of units in the input layer.
  
          W_ : array_like, optional (default = None)
              Weight matrix np array.
  
          bh_ : array_like, optional (default = None)
              Hidden bias np array.
  
          bv_ : array_like, optional (default = None)
              Visible bias np array.
  
          Returns
          -------
  
          self