Return the next batch of examples from train data set
        :param batch_size: int, size of image batch returned
        :return train_labels: list, of labels
        :return images: list, of images

def next_train_batch(self, batch_size):
        """
        Return the next batch of examples from train data set
        :param batch_size: int, size of image batch returned
        :return train_labels: list, of labels
        :return images: list, of images
        """
        start = self.index_in_train_epoch
        self.index_in_train_epoch += batch_size
        if self.index_in_train_epoch > self.num_train_images:
            # Finished epoch
            self.train_epochs_completed += 1

            # Shuffle the data
            perm = np.arange(self.num_train_images)
            np.random.shuffle(perm)
            self.train_images = self.train_images[perm]
            self.train_labels = self.train_labels[perm]

            # Start next epoch
            start = 0
            self.index_in_train_epoch = batch_size
            assert batch_size <= self.num_train_images

        end = self.index_in_train_epoch
        return self.train_labels[start:end], self.img_norm(self.train_images[start:end])