code: def mnist_raw():
      """Download and parse the raw MNIST dataset."""
      # CVDF mirror of http://yann.lecun.com/exdb/mnist/
      base_url = "https://storage.googleapis.com/cvdf-datasets/mnist/"
  
      def parse_labels(filename):
          with gzip.open(filename, "rb") as fh:
              _ = struct.unpack(">II", fh.read(8))
              return np.array(
                  array.array("B", fh.read()), dtype=np.uint8
              )
  
      def parse_images(filename):
          with gzip.open(filename, "rb") as fh:
              _, num_data, rows, cols = struct.unpack(
                  ">IIII", fh.read(16)
              )
              return np.array(
                  array.array("B", fh.read()), dtype=np.uint8
              ).reshape(num_data, rows, cols)
  
      for filename in [
          "train-images-idx3-ubyte.gz",
          "train-labels-idx1-ubyte.gz",
          "t10k-images-idx3-ubyte.gz",
          "t10k-labels-idx1-ubyte.gz",
      ]:
          _download(base_url + filename, filename)
  
      train_images = parse_images(
          path.join(_DATA, "train-images-idx3-ubyte.gz")
      )
      train_labels = parse_labels(
          path.join(_DATA, "train-labels-idx1-ubyte.gz")
      )
      test_images = parse_images(
          path.join(_DATA, "t10k-images-idx3-ubyte.gz")
      )
      test_labels = parse_labels(
          path.join(_DATA, "t10k-labels-idx1-ubyte.gz")
      )
  
      return train_images, train_labels, test_images, test_labels
  
file_path: cleverhans/tutorials/jax/datasets.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import array
  import gzip
  import os
  from os import path
  import struct
  from six.moves.urllib.request import urlretrieve
  import numpy
  from cleverhans.jax.utils import one_hot, partial_flatten
label_desc: Use image node_id 2 for calling a global function with example usage: mnist_raw() and returns: train_images,  train_labels,  test_images,  test_labels, np, np