class_docstr: `SVHN <http://ufldl.stanford.edu/housenumbers/>`_ Cropped Digit Dataset.
  Produces [img, label], img of 32x32x3 in range [0,255], label of 0-9
class_docstr_tok: ["`","SVHN","<","http",":","\/\/ufldl.stanford.edu\/housenumbers\/",">","`","_","Cropped","Digit","Dataset",".","Produces","[","img",",","label","]",",","img","of","32x32x3","in","range","[","0,255","]",",","label","of","0-9"]
docstr: Args:
      name (str): 'train', 'test', or 'extra'.
      data_dir (str): a directory containing the original {train,test,extra}_32x32.mat.
      shuffle (bool): shuffle the dataset.
docstr_tok: ["Args",":","name","(","str",")",":","'train","'",",","'test","'",",","or","'extra","'",".","data_dir","(","str",")",":","a","directory","containing","the","original","{","train",",","test",",","extra","}","_32x32.mat",".","shuffle","(","bool",")",":","shuffle","the","dataset","."]
code: def __init__(self, name, data_dir=None, shuffle=True):
      """
      Args:
          name (str): 'train', 'test', or 'extra'.
          data_dir (str): a directory containing the original {train,test,extra}_32x32.mat.
          shuffle (bool): shuffle the dataset.
      """
      self.shuffle = shuffle
  
      if name in SVHNDigit._Cache:
          self.X, self.Y = SVHNDigit._Cache[name]
          return
      if data_dir is None:
          data_dir = get_dataset_path("svhn_data")
      assert name in ["train", "test", "extra"], name
      filename = os.path.join(data_dir, name + "_32x32.mat")
      if not os.path.isfile(filename):
          url = SVHN_URL + os.path.basename(filename)
          logger.info("File {} not found!".format(filename))
          logger.info("Downloading from {} ...".format(url))
          download(url, os.path.dirname(filename))
      logger.info("Loading {} ...".format(filename))
      data = scipy.io.loadmat(filename)
      self.X = data["X"].transpose(3, 0, 1, 2)
      self.Y = data["y"].reshape((-1))
      self.Y[self.Y == 10] = 0
      SVHNDigit._Cache[name] = (self.X, self.Y)
  
file_path: tensorpack/tensorpack/dataflow/dataset/svhn.py
imports: import numpy
  import os
  from ...utils import logger
  from ...utils.fs import download, get_dataset_path
  from ..base import RNGDataFlow
label_desc: Use image node_id 1 to create a new SVHNDigit object from inherited base classes: RNGDataFlow with example: obj = SVHNDigit(name, data_dir, shuffle)