class_docstr: The G2P model evaluation wrapper
  
  Arguments
  ---------
  hparams: dict
      the dictionary from a parsed hyperparameter file
  device: str
      the device identifier
  model_state: dict
      a pre-loaded model state for a "warm start" if applicable
      - could be useful if hyperparameters have changed, but
      the same model can be reused from one run to the next
docstr: Loads a model from a checkpoint
docstr_tok: ["Loads","a","model","from","a","checkpoint"]
code: def load(self):
      """Loads a model from a checkpoint"""
      checkpointer = self.hparams.checkpointer
      ckpt = checkpointer.recover_if_possible(
          device=torch.device(self.device),
          importance_key=lambda ckpt: -ckpt.meta.get("PER", -100.0),
          ckpt_predicate=lambda ckpt: ckpt.meta["step"]
          == self.hparams.eval_ckpt_step,
      )
      if ckpt:
          logger.info("Loaded checkpoint with metadata %s", ckpt.meta)
      else:
          raise ValueError(
              f"Checkpoint not found for training step {self.hparams.eval_train_step}"
          )
      return ckpt
  
imports: from hyperpyyaml import load_hyperpyyaml
  from speechbrain.dataio.batch import PaddedBatch
  from speechbrain.lobes.models.g2p.dataio import get_sequence_key
  from speechbrain.utils import hpopt
  from speechbrain.wordemb.util import expand_to_chars
  from train import dataio_prep, load_dependencies
  from types import SimpleNamespace
  from tqdm.auto import tqdm
  import math
  import itertools
  import speechbrain
  import torch
  import sys
  import logging
label_desc: Use image node_id 2 for calling the G2PEvaluator obj's underlying member method code with example usage: obj.load() and returns: ckpt