code: def download(self):
      import tarfile
      import pickle
      import shutil
  
      if self._check_integrity_data():
          return
  
      gz_filename = "{0}.tar.gz".format(self.gz_folder)
      download_url(
          self.download_url,
          self.root,
          filename=gz_filename,
          md5=self.gz_md5,
      )
      with tarfile.open(
          os.path.join(self.root, gz_filename), "r:gz"
      ) as tar:
          tar.extractall(path=self.root)
  
      train_filename = os.path.join(self.root, self.gz_folder, "train")
      check_integrity(train_filename, self.files_md5["train"])
      with open(train_filename, "rb") as f:
          data = pickle.load(f, encoding="bytes")
          images = data[b"data"]
          fine_labels = data[b"fine_labels"]
          coarse_labels = data[b"coarse_labels"]
  
      test_filename = os.path.join(self.root, self.gz_folder, "test")
      check_integrity(test_filename, self.files_md5["test"])
      with open(test_filename, "rb") as f:
          data = pickle.load(f, encoding="bytes")
          images = np.concatenate((images, data[b"data"]), axis=0)
          fine_labels = np.concatenate(
              (fine_labels, data[b"fine_labels"]), axis=0
          )
          coarse_labels = np.concatenate(
              (coarse_labels, data[b"coarse_labels"]), axis=0
          )
  
      images = images.reshape((-1, 3, 32, 32))
      images = images.transpose((0, 2, 3, 1))
  
      meta_filename = os.path.join(self.root, self.gz_folder, "meta")
      check_integrity(meta_filename, self.files_md5["meta"])
      with open(meta_filename, "rb") as f:
          data = pickle.load(f, encoding="latin1")
          fine_label_names = data["fine_label_names"]
          coarse_label_names = data["coarse_label_names"]
  
      filename = os.path.join(self.root, self.filename)
      fine_names = dict()
      with h5py.File(filename, "w") as f:
          for i, coarse_name in enumerate(coarse_label_names):
              group = f.create_group(coarse_name)
              fine_indices = np.unique(fine_labels[coarse_labels == i])
              for j in fine_indices:
                  dataset = group.create_dataset(
                      fine_label_names[j], data=images[fine_labels == j]
                  )
              fine_names[coarse_name] = [
                  fine_label_names[j] for j in fine_indices
              ]
  
      filename_fine_names = os.path.join(
          self.root, self.filename_fine_names
      )
      with open(filename_fine_names, "w") as f:
          json.dump(fine_names, f)
  
      gz_folder = os.path.join(self.root, self.gz_folder)
      if os.path.isdir(gz_folder):
          shutil.rmtree(gz_folder)
      if os.path.isfile("{0}.tar.gz".format(gz_folder)):
          os.remove("{0}.tar.gz".format(gz_folder))
  
imports: import numpy
  import os
  import json
  import h5py
  from PIL import Image
  from torchvision.datasets.utils import check_integrity, download_url
  from torchmeta.utils.data import Dataset, ClassDataset
label_desc: Use image node_id 9 for calling the CIFAR100ClassDataset obj's underlying member method code with example usage: obj.download() without return types