code: def batch_face_locations(
      images, number_of_times_to_upsample=1, batch_size=128
  ):
      """
      Returns an 2d array of bounding boxes of human faces in a image using the cnn face detector
      If you are using a GPU, this can give you much faster results since the GPU
      can process batches of images at once. If you aren't using a GPU, you don't need this function.
  
      :param images: A list of images (each as a numpy array)
      :param number_of_times_to_upsample: How many times to upsample the image looking for faces. Higher numbers find smaller faces.
      :param batch_size: How many images to include in each GPU processing batch.
      :return: A list of tuples of found face locations in css (top, right, bottom, left) order
      """
  
      def convert_cnn_detections_to_css(detections):
          return [
              _trim_css_to_bounds(
                  _rect_to_css(face.rect), images[0].shape
              )
              for face in detections
          ]
  
      raw_detections_batched = _raw_face_locations_batched(
          images, number_of_times_to_upsample, batch_size
      )
  
      return list(
          map(convert_cnn_detections_to_css, raw_detections_batched)
      )
  
file_path: face_recognition/face_recognition/api.py
imports: import PIL.Image
  import dlib
  import numpy
  from PIL import ImageFile
label_desc: Use image node_id 9 for calling a global function with example usage: batch_face_locations(images, number_of_times_to_upsample, batch_size) and returns: list, unknown