code: def ld_cifar10():
      """Load training and test data."""
  
      def convert_types(image, label):
          image = tf.cast(image, tf.float32)
          image /= 127.5
          image -= 1.0
          return image, label
  
      dataset, info = tfds.load(
          "cifar10", with_info=True, as_supervised=True
      )
  
      def augment_mirror(x):
          return tf.image.random_flip_left_right(x)
  
      def augment_shift(x, w=4):
          y = tf.pad(x, [[w] * 2, [w] * 2, [0] * 2], mode="REFLECT")
          return tf.image.random_crop(y, tf.shape(x))
  
      cifar10_train, cifar10_test = dataset["train"], dataset["test"]
      # Augmentation helps a lot in CIFAR10
      cifar10_train = cifar10_train.map(
          lambda x, y: (augment_mirror(augment_shift(x)), y)
      )
      cifar10_train = (
          cifar10_train.map(convert_types).shuffle(10000).batch(128)
      )
      cifar10_test = cifar10_test.map(convert_types).batch(128)
  
      return EasyDict(train=cifar10_train, test=cifar10_test)
  
file_path: cleverhans/tutorials/tf2/cifar10_tutorial.py
imports: import math
  import numpy
  import tensorflow
  import tensorflow_datasets
  from absl import app, flags
  from easydict import EasyDict
  from tensorflow.keras import Model
  from tensorflow.keras.layers import AveragePooling2D, Conv2D
  from cleverhans.tf2.attacks.projected_gradient_descent import projected_gradient_descent
  from cleverhans.tf2.attacks.fast_gradient_method import fast_gradient_method
label_desc: Use image node_id 1 for calling a global function with example usage: ld_cifar10() and returns: EasyDict, image,  label, tf, tf