code: def start(self, target_images):
      assert self._Gs is not None
  
      # Prepare target images.
      self._info("Preparing target images...")
      target_images = np.asarray(target_images, dtype="float32")
      target_images = (target_images + 1) * (255 / 2)
      sh = target_images.shape
      assert sh[0] == self._minibatch_size
      if sh[2] > self._target_images_var.shape[2]:
          factor = sh[2] // self._target_images_var.shape[2]
          target_images = np.reshape(
              target_images,
              [
                  -1,
                  sh[1],
                  sh[2] // factor,
                  factor,
                  sh[3] // factor,
                  factor,
              ],
          ).mean((3, 5))
  
      # Initialize optimization state.
      self._info("Initializing optimization state...")
      tflib.set_vars(
          {
              self._target_images_var: target_images,
              self._dlatents_var: np.tile(
                  self._dlatent_avg, [self._minibatch_size, 1, 1]
              ),
          }
      )
      tflib.run(self._noise_init_op)
      self._opt.reset_optimizer_state()
      self._cur_step = 0
  
file_path: insightface/reconstruction/ostec/external/stylegan2/projector.py
imports: import numpy
  import tensorflow
  import dnnlib
  import dnnlib.tflib
  from training import misc
label_desc: Use image node_id 5 for calling the Projector obj's underlying member method code with example usage: obj.start(target_images) without return types