code: def iterative_prune(self, model, parametrization):
      if not self.pruning_amount:
          self.pruning_amount = parametrization.get("amount")
      else:
          self.pruning_amount += 0.15
  
      mlflow.log_metric("PRUNING PERCENTAGE", self.pruning_amount)
      pruned_model = self.prune_and_save_model(
          model, self.pruning_amount
      )
      model.load_state_dict(copy.deepcopy(pruned_model))
      summary, params = self.count_model_parameters(model)
      self.write_prune_summary(summary, params)
      trainer = self.run_mnist_model()
      metrics = trainer.callback_metrics
      test_accuracy = metrics.get("avg_test_acc")
      return test_accuracy
  
imports: import argparse
  import copy
  import os
  import shutil
  import tempfile
  from pathlib import Path
  import lightning
  import torch
  from ax.service.ax_client import AxClient
  from mnist import LightningMNISTClassifier, MNISTDataModule
  from prettytable import PrettyTable
  from torch.nn.utils import prune
  import mlflow.pytorch
  from mlflow.tracking.artifact_utils import _download_artifact_from_uri
label_desc: Use image node_id 8 for calling the IterativePrune obj's underlying member method code with example usage: obj.iterative_prune(model, parametrization) and returns: test_accuracy