class_docstr: Base ModelInterface for torch and tensorflow models.
class_docstr_tok: ["Base","ModelInterface","for","torch","and","tensorflow","models","."]
docstr: Identify the framework of the underlying model (PyTorch or TensorFlow).
  
  Returns
  -------
  str
      A string indicating the framework ('PyTorch', 'TensorFlow', or 'Unknown').
docstr_tok: ["Identify","the","framework","of","the","underlying","model","(","PyTorch","or","TensorFlow",")",".","Returns","--","--","--","-","str","A","string","indicating","the","framework","(","'PyTorch","'",",","'TensorFlow","'",",","or","'Unknown","'",")","."]
code: def get_ml_framework_name(self) -> str:
      """
      Identify the framework of the underlying model (PyTorch or TensorFlow).
  
      Returns
      -------
      str
          A string indicating the framework ('PyTorch', 'TensorFlow', or 'Unknown').
      """
      if util.find_spec("torch"):
          if isinstance(self.model, torch.nn.Module):
              return "torch"
      if util.find_spec("tensorflow"):
          if isinstance(self.model, tf.keras.Model):
              return "tensorflow"
      else:
          warnings.warn(
              "Cannot identify ML framework of the given model."
          )
          return "unknown"
      return ""
  
file_path: Quantus/quantus/helpers/model/model_interface.py
imports: import warnings
  from importlib import util
  from abc import ABC, abstractmethod
  from typing import Any, Dict, Optional, Tuple, List, Union, Generator, TypeVar, Generic
  import numpy
label_desc: Use image node_id 11 for calling the ModelInterface obj's underlying member method code with example usage: obj.get_ml_framework_name() and returns: str, str, str, str