code: def _apply_injection_policy(self, config, client_module=None):
      # client_module is only passed when using the injection_dict method.
      checkpoint_dir = config.checkpoint
      checkpoint = (
          SDLoaderFactory.get_sd_loader_json(
              checkpoint_dir, self.checkpoint_engine
          )
          if checkpoint_dir is not None
          else None
      )
  
      generic_injection(
          self.module,
          fp16=(config.dtype == torch.half)
          or (config.dtype == torch.int8),
          enable_cuda_graph=config.enable_cuda_graph,
      )
  
      if isinstance(self.module, torch.nn.Module):
          # config is our DeepSpeedInferenceConfig and self.config is the HF model config
          replace_transformer_layer(
              client_module,
              self.module,
              checkpoint,
              config,
              self.config,
          )
  
imports: import torch
  import time
  import os
  from deepspeed import comm
  from deepspeed.utils.logging import log_dist
  from torch.nn.modules import Module
  from packaging import version
  from deepspeed.runtime.checkpoint_engine.torch_checkpoint_engine import TorchCheckpointEngine
  from deepspeed.utils.timer import SynchronizedWallClockTimer
  from ..runtime.state_dict_factory import SDLoaderFactory
  from ..runtime.weight_quantizer import WeightQuantization
  from ..module_inject.replace_module import replace_transformer_layer, generic_injection
  from ..comm.comm import init_distributed
  from ..pipe import PipelineModule
  from ..moe.utils import has_moe_layers
  from ..runtime.zero import GatheredParameters
  from ..module_inject import LinearAllreduce, LinearLayer, Normalize, ReplaceWithTensorSlicing
  from ..module_inject.replace_policy import DSPolicy
  from torch import nn
label_desc: Use image node_id 12 for calling the InferenceEngine obj's underlying member method code with example usage: obj._apply_injection_policy(config, client_module) without return types