class_docstr: `Omniglot <https://github.com/brendenlake/omniglot>`_ Dataset.
  
  Args:
      root (string): Root directory of dataset where directory
          ``omniglot-py`` exists.
      background (bool, optional): If True, creates dataset from the "background" set, otherwise
          creates from the "evaluation" set. This terminology is defined by the authors.
      transform (callable, optional): A function/transform that takes in a PIL image
          and returns a transformed version. E.g, ``transforms.RandomCrop``
      target_transform (callable, optional): A function/transform that takes in the
          target and transforms it.
      download (bool, optional): If true, downloads the dataset zip files from the internet and
          puts it in root directory. If the zip files are already downloaded, they are not
          downloaded again.
class_docstr_tok: ["`","Omniglot","<","https",":","\/\/github.com\/brendenlake\/omniglot",">","`","_","Dataset",".","Args",":","root","(","string",")",":","Root","directory","of","dataset","where","directory","``","omniglot-py","``","exists",".","background","(","bool",",","optional",")",":","If","True",",","creates","dataset","from","the","``","background","''","set",",","otherwise","creates","from","the","``","evaluation","''","set",".","This","terminology","is","defined","by","the","authors",".","transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","a","PIL","image","and","returns","a","transformed","version",".","E.g",",","``","transforms.RandomCrop","``","target_transform","(","callable",",","optional",")",":","A","function\/transform","that","takes","in","the","target","and","transforms","it",".","download","(","bool",",","optional",")",":","If","true",",","downloads","the","dataset","zip","files","from","the","internet","and","puts","it","in","root","directory",".","If","the","zip","files","are","already","downloaded",",","they","are","not","downloaded","again","."]
code: def __init__(
      self,
      root: str,
      background: bool = True,
      transform: Optional[Callable] = None,
      target_transform: Optional[Callable] = None,
      download: bool = False,
  ) -> None:
      super().__init__(
          join(root, self.folder),
          transform=transform,
          target_transform=target_transform,
      )
      self.background = background
  
      if download:
          self.download()
  
      if not self._check_integrity():
          raise RuntimeError(
              "Dataset not found or corrupted. You can use download=True to download it"
          )
  
      self.target_folder = join(self.root, self._get_target_folder())
      self._alphabets = list_dir(self.target_folder)
      self._characters: List[str] = sum(
          (
              [
                  join(a, c)
                  for c in list_dir(join(self.target_folder, a))
              ]
              for a in self._alphabets
          ),
          [],
      )
      self._character_images = [
          [
              (image, idx)
              for image in list_files(
                  join(self.target_folder, character), ".png"
              )
          ]
          for idx, character in enumerate(self._characters)
      ]
      self._flat_character_images: List[Tuple[str, int]] = sum(
          self._character_images, []
      )
  
file_path: vision/torchvision/datasets/omniglot.py
imports: from os.path import join
  from typing import Any, Callable, List, Optional, Tuple
  from PIL import Image
  from .utils import check_integrity, download_and_extract_archive, list_dir, list_files
  from .vision import VisionDataset
label_desc: Use image node_id 1 to create a new Omniglot object from inherited base classes: VisionDataset with example: obj = Omniglot(root, background, transform, target_transform, download)