docstr: Args:
          images: 4D numpy array
          labels: 2D or 1D numpy array
          n_classes: `int`, number of cifar classes - 10 or 100
          shuffle: `str` or None
                  None: no any shuffling
                  once_prior_train: shuffle train data only once prior train
                  every_epoch: shuffle train data prior every epoch
          normalization: `str` or None
                  None: no any normalization
                  divide_255: divide all pixels by 255
                  divide_256: divide all pixels by 256
                  by_channels: substract mean of every chanel and divide each
                          chanel data by it's standard deviation
          augmentation: `bool`
docstr_tok: ["Args",":","images",":","4D","numpy","array","labels",":","2D","or","1D","numpy","array","n_classes",":","`","int","`",",","number","of","cifar","classes","-","10","or","100","shuffle",":","`","str","`","or","None","None",":","no","any","shuffling","once_prior_train",":","shuffle","train","data","only","once","prior","train","every_epoch",":","shuffle","train","data","prior","every","epoch","normalization",":","`","str","`","or","None","None",":","no","any","normalization","divide_255",":","divide","all","pixels","by","255","divide_256",":","divide","all","pixels","by","256","by_channels",":","substract","mean","of","every","chanel","and","divide","each","chanel","data","by","it","'s","standard","deviation","augmentation",":","`","bool","`"]
code: def __init__(
      self,
      images,
      labels,
      n_classes,
      shuffle,
      normalization,
      augmentation,
      meanstd,
  ):
      """
      Args:
              images: 4D numpy array
              labels: 2D or 1D numpy array
              n_classes: `int`, number of cifar classes - 10 or 100
              shuffle: `str` or None
                      None: no any shuffling
                      once_prior_train: shuffle train data only once prior train
                      every_epoch: shuffle train data prior every epoch
              normalization: `str` or None
                      None: no any normalization
                      divide_255: divide all pixels by 255
                      divide_256: divide all pixels by 256
                      by_channels: substract mean of every chanel and divide each
                              chanel data by it's standard deviation
              augmentation: `bool`
      """
      if shuffle is None:
          self.shuffle_every_epoch = False
      elif shuffle == "once_prior_train":
          self.shuffle_every_epoch = False
          images, labels = self.shuffle_images_and_labels(
              images, labels
          )
      elif shuffle == "every_epoch":
          self.shuffle_every_epoch = True
      else:
          raise Exception("Unknown type of shuffling")
      self._batch_counter, self.epoch_images, self.epoch_labels = (
          0,
          None,
          None,
      )
  
      self.images = images
      self.labels = labels
      self.n_classes = n_classes
      self.augmentation = augmentation
      self.normalization = normalization
      self.meanstd = meanstd
      self.images = self.normalize_images(
          images, self.normalization, self.meanstd
      )
      self.start_new_epoch()
  
imports: import tempfile
  import os
  import pickle
  import random
  import numpy
  from data_providers.base_provider import ImagesDataSet, DataProvider
  from data_providers.downloader import download_data_url
label_desc: Use image node_id 1 to create a new CifarDataSet object from inherited base classes: ImagesDataSet with example: obj = CifarDataSet(images, labels, n_classes, shuffle, normalization, augmentation, meanstd)