code: def _test_lgbm(self, X, model, extra_config={}):
      # Create ONNX-ML model
      onnx_ml_model = convert_lightgbm(
          model,
          initial_types=[
              ("input", FloatTensorType([None, X.shape[1]]))
          ],
          target_opset=9,
      )
  
      # Create ONNX model
      onnx_model = convert(
          onnx_ml_model, "onnx", extra_config=extra_config
      )
  
      # Get the predictions for the ONNX-ML model
      session = ort.InferenceSession(onnx_ml_model.SerializeToString())
      output_names = [
          session.get_outputs()[i].name
          for i in range(len(session.get_outputs()))
      ]
      onnx_ml_pred = [[] for i in range(len(output_names))]
      inputs = {session.get_inputs()[0].name: X}
      pred = session.run(output_names, inputs)
      for i in range(len(output_names)):
          if "label" in output_names[i]:
              onnx_ml_pred[1] = pred[i]
          else:
              onnx_ml_pred[0] = pred[i]
  
      # Get the predictions for the ONNX model
      onnx_pred = [[] for i in range(len(output_names))]
      if len(output_names) == 1:  # regression
          onnx_pred = onnx_model.predict(X)
      else:  # classification
          onnx_pred[0] = onnx_model.predict_proba(X)
          onnx_pred[1] = onnx_model.predict(X)
  
      return onnx_ml_pred, onnx_pred, output_names
  
imports: import unittest
  import warnings
  import numpy
  from onnxconverter_common.data_types import FloatTensorType
  from hummingbird.ml import convert
  from hummingbird.ml import constants
  from hummingbird.ml._utils import onnx_ml_tools_installed, onnx_runtime_installed, lightgbm_installed
label_desc: Use image node_id 2 for calling the TestONNXLightGBMConverter obj's underlying member method code with example usage: obj._test_lgbm(X, model, extra_config) and returns: onnx_ml_pred,  onnx_pred,  output_names