code: def _forward_pass(self, images):
          
          # form image array
          num_images = len(images)
          if num_images == 0:
              return None
          for image in images:
              if not isinstance(image, Image):
                  new_images = []
                  for image in images:
                      if len(image.shape) > 2:
                          new_images.append(ColorImage(image, frame='unspecified'))
                      elif image.dtype == np.float32 or image.dtype == np.float64:
                          new_images.append(DepthImage(image, frame='unspecified'))
                      else:
                          raise ValueError('Image type not understood')
                  images = new_images
                  break
  
          im_height = images[0].height
          im_width = images[0].width
          channels = images[0].channels
          tensor_channels = 3
          image_arr = np.zeros([num_images, im_height, im_width, tensor_channels])
          for j, image in enumerate(images):
              if channels == 3:
                  image_arr[j,:,:,:] = image.raw_data
              else:
                  image_arr[j,:,:,:] = np.tile(image.raw_data, [1,1,1,3])
  
          # predict
          fp_start = time.time()
          final_blobs = self.cnn_.featurize(image_arr)
          fp_stop = time.time()
          logging.debug('Featurization took %f sec per image' %((fp_stop - fp_start) / len(images)))
          return final_blobs.reshape(final_blobs.shape[0], -1)
docs: Forward pass a list of images through the CNN