code: def _run_train_step(self, train_set):
          
          np.random.shuffle(train_set)
  
          batches = [_ for _ in utilities.gen_batches(train_set,
                                                      self.batch_size)]
          updates = [self.w_upd8, self.bh_upd8, self.bv_upd8]
  
          for batch in batches:
              self.tf_session.run(updates,
                                  feed_dict=self._create_feed_dict(batch))
docs: Run a training step.
  
          A training step is made by randomly shuffling the training set,
          divide into batches and run the variable update nodes for each batch.
          :param train_set: training set
          :return: self