'Create the computational graph for the reconstruction task.
:param n_features: Number of features
:param encoding_w: list of weights for the encoding layers.
:param encoding_b: list of biases for the encoding layers.
:return: self'

def build_model(self, n_features, encoding_w=None, encoding_b=None):

    self._create_placeholders(n_features, n_features)
    if (encoding_w and encoding_b):
        self.encoding_w_ = encoding_w
        self.encoding_b_ = encoding_b
    else:
        self._create_variables(n_features)
    self._create_encoding_layers()
    self._create_decoding_layers()
    variables = []
    variables.extend(self.encoding_w_)
    variables.extend(self.encoding_b_)
    regterm = Layers.regularization(variables, self.regtype, self.regcoef)
    self.cost = self.loss.compile(self.reconstruction, self.input_labels, regterm=regterm)
    self.train_step = self.trainer.compile(self.cost)
