code: def __call__(self, model, steps_per_epoch, skip_params_func=None):
      paddleslim = try_import("paddleslim")
      from paddleslim import GMPUnstructuredPruner
  
      configs = {
          "pruning_strategy": "gmp",
          "stable_iterations": self.stable_epochs * steps_per_epoch,
          "pruning_iterations": self.pruning_epochs * steps_per_epoch,
          "tunning_iterations": self.tunning_epochs * steps_per_epoch,
          "resume_iteration": 0,
          "pruning_steps": self.pruning_steps,
          "initial_ratio": self.initial_ratio,
      }
  
      pruner = GMPUnstructuredPruner(
          model,
          ratio=self.ratio,
          skip_params_func=skip_params_func,
          prune_params_type=self.prune_params_type,
          local_sparsity=True,
          configs=configs,
      )
  
      return pruner
  
file_path: PaddleDetection/ppdet/slim/unstructured_prune.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from paddle.utils import try_import
  from ppdet.core.workspace import register, serializable
  from ppdet.utils.logger import setup_logger
label_desc: Use image node_id 2 for calling the UnstructuredPruner obj's underlying member method code with example usage: obj.__call__(model, steps_per_epoch, skip_params_func) and returns: pruner