code: def _generate_examples(self, filepath):
      
      # Simultaneously iterating through the different data sets in the hdf5
      # file is >100x slower and the data set is small (26.7MB). Hence, we first
      # load everything into memory before yielding the samples.
      image_array, class_array, values_array = _load_data(filepath)
      for image, classes, values in moves.zip(image_array, class_array,
                                              values_array):
        yield dict(
            image=np.expand_dims(image, -1),
            label_shape=classes[1],
            label_scale=classes[2],
            label_orientation=classes[3],
            label_x_position=classes[4],
            label_y_position=classes[5],
            value_shape=values[1],
            value_scale=values[2],
            value_orientation=values[3],
            value_x_position=values[4],
            value_y_position=values[5])
docs: Generates examples for the dSprites data set.
  
      Args:
        filepath: path to the dSprites hdf5 file.
  
      Yields:
        Dictionaries with images, latent classes, and latent values.