code: def onnx_conversion(self, save_path, model_params):
      onnx_path = save_path / f"{self.model_name}{self.ONNX_EXTENSION}"
      onnx_model_path = convert_torch_to_onnx(
          torch_model=self.model,
          input_data=self.data,
          model_params=model_params,
          output_file_path=onnx_path,
          device=self.device,
      )
      if self.converted_models is None:
          self.converted_models = [onnx_model_path]
      else:
          self.converted_models.append(onnx_model_path)
  
imports: import abc
  from pathlib import Path
  from typing import Optional, List, Union
  from nebullvm.core.models import DeviceType, DeepLearningFramework, ModelParams
  from nebullvm.operations.base import Operation
  from nebullvm.operations.conversions.pytorch import convert_torch_to_onnx
  from nebullvm.operations.conversions.tensorflow import convert_tf_to_onnx
  from nebullvm.optional_modules.onnx import onnx
  from nebullvm.optional_modules.tensorflow import tensorflow
  from nebullvm.optional_modules.torch import torch
  from nebullvm.tools.data import DataManager
label_desc: Use image node_id 2 for calling the PytorchConverter obj's underlying member method code with example usage: obj.onnx_conversion(save_path, model_params) without return types