<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _generate_examples(self, images_dir_path, csv_path=None, csv_usage=None):
 """Yields Example instances from given CSV. Args: images_dir_path: path to dir in which images are stored. csv_path: optional, path to csv file with two columns: name of image and label. If not provided, just scan image directory, don't set labels. csv_usage: optional, subset of examples from the csv file to use based on the "Usage" column from the csv. """

    if csv_path:
      with tf.io.gfile.GFile(csv_path) as csv_f:
        reader = csv.DictReader(csv_f)
        data = [(row["image"], int(row["level"]))
                for row in reader
                if csv_usage is None or row["Usage"] == csv_usage]
    else:
      data = [(fname[:-5], -1)
              for fname in tf.io.gfile.listdir(images_dir_path)
              if fname.endswith(".jpeg")]
    for name, label in data:
      yield {
          "name": name,
          "image": _resize_image_if_necessary(
              tf.io.gfile.GFile("%s/%s.jpeg" % (images_dir_path, name),
                                mode="rb"),
              target_pixels=self.builder_config.target_pixels),
          "label": label,
      }