code: def _pretrain_layer_and_gen_feed(self, layer_obj, set_params_func,
                                       train_set, validation_set, graph):
          
          layer_obj.fit(train_set, train_set,
                        validation_set, validation_set, graph=graph)
  
          with graph.as_default():
              set_params_func(layer_obj, graph)
  
              next_train = layer_obj.transform(train_set, graph=graph)
              if validation_set is not None:
                  next_valid = layer_obj.transform(validation_set, graph=graph)
              else:
                  next_valid = None
  
          return next_train, next_valid
docs: Pretrain a single autoencoder and encode the data for the next layer.
  
          :param layer_obj: layer model
          :param set_params_func: function used to set the parameters after
              pretraining
          :param train_set: training set
          :param validation_set: validation set
          :param graph: tf object for the rbm
          :return: encoded train data, encoded validation data