code: def load(cls, path: Union[Path, str], **kwargs):
      path = Path(path)
      model = torch.jit.load(path / cls.MODEL_NAME)
      metadata = LearnerMetadata.read(path)
      device = Device.from_str(metadata.device)
      return cls(
          torch_model=model,
          network_parameters=ModelParams(**metadata.network_parameters),
          input_tfms=MultiStageTransformation.from_dict(
              metadata.input_tfms
          )
          if metadata.input_tfms is not None
          else None,
          device=device,
      )
  
file_path: nebuly/optimization/nebullvm/nebullvm/operations/inference_learners/torchscript.py
imports: from pathlib import Path
  from typing import Tuple, Union, Optional, List
  from nebullvm.core.models import Device, DeviceType, ModelParams
  from nebullvm.operations.inference_learners.base import PytorchBaseInferenceLearner, LearnerMetadata
  from nebullvm.optional_modules.torch import torch, symbolic_trace, Module, ScriptModule, GraphModule
  from nebullvm.tools.transformations import MultiStageTransformation
label_desc: Use image node_id 4 for calling the TorchScriptInferenceLearner obj's underlying member method code with example usage: obj.load(cls, path) and returns: cls