class_docstr: Performs the perturbation analysis.
  
  :param analyzer: Analyzer.
  :type analyzer: innvestigate.analyzer.base.AnalyzerBase
  :param model: Trained Keras model.
  :param generator: Data generator.
  :type generator: innvestigate.sequence.BatchSequence
  :param perturbation: Instance of Perturbation class that performs the perturbation.
  :type perturbation: innvestigate.tools.Perturbation
  :param steps: Number of perturbation steps.
  :type steps: int
  :param regions_per_step: Number of regions that are perturbed per step.
  :type regions_per_step: float
  :param recompute_analysis:
      If true, the analysis is recomputed after each perturbation step.
  :type recompute_analysis: bool
  :param verbose: If true, print some useful information, e.g. timing, progress etc.
code: def compute_perturbation_analysis(self):
      scores = []
      # Evaluate first on original data
      scores.append(self.model.evaluate(self.generator))
      self.perturbation.num_perturbed_regions = 1
      time_start = time.time()
      for step in range(self.steps):
          tic = time.time()
          if self.verbose:
              print(
                  f"Step {step + 1} of {self.steps}: "
                  f"{self.perturbation.num_perturbed_regions} regions perturbed.",
                  end=" ",
              )
          scores.append(
              self.evaluate_generator(self.analysis_generator)
          )
          self.perturbation.num_perturbed_regions += (
              self.regions_per_step
          )
          toc = time.time()
          if self.verbose:
              print(f"Time elapsed: {toc - tic:.3f} seconds.")
      time_end = time.time()
  
      if self.verbose:
          print(
              # Use step + 1 instead of self.steps
              # because the analysis can stop prematurely
              f"Time elapsed for {step + 1} steps: "
              f"{time_end - time_start:.3f} seconds."
          )
  
      self.perturbation.num_perturbed_regions = (
          1  # Reset to original value
      )
      assert len(scores) == self.steps + 1
      return scores
  
imports: from __future__ import annotations
  import time
  import warnings
  import numpy
  import tensorflow.keras.backend
  import tensorflow.keras.utils
  import innvestigate.utils.sequence
label_desc: Use image node_id 5 for calling the PerturbationAnalysis obj's underlying member method code with example usage: obj.compute_perturbation_analysis() and returns: scores