Skip to content

Instantly share code, notes, and snippets.

@Puzer
Created April 23, 2021 20:27
Show Gist options
  • Save Puzer/108b7379fc5a5daaafcddca91d3244bc to your computer and use it in GitHub Desktop.
Save Puzer/108b7379fc5a5daaafcddca91d3244bc to your computer and use it in GitHub Desktop.
LGBM Inference Optimization
import daal4py as d4p
from lightgbm import LGBMClassifier
model = LGBMClassifier()
model.fit(X_data, y_data)
y_pred_orig = model.predict_proba(x_data_dense)[:,1]
daal_model = d4p.get_gbt_model_from_lightgbm(model.booster_)
predictions_container = d4p.gbt_classification_prediction(nClasses=2, resultsToEvaluate='computeClassProbabilities', fptype='float')
y_pred_opti = predictions_container.compute(X_data, daal_model).probabilities[:,1]
np.allclose(y_pred_orig, y_pred_opti)
#https://treelite.readthedocs.io/en/latest/tutorials/import.html#importing-lightgbm-models
import treelite
from lightgbm import LGBMClassifier
model = LGBMClassifier()
model.fit(X_data, y_data)
model.booster_.save_model('my_model.txt')
treelite_model = treelite.Model.load('my_model.txt', model_format='lightgbm')
# for windows libpath='my_model.dll', toolchain = 'msvc'
treelite_model.export_lib(libpath='my_model.so', toolchain = 'gcc', verbose=True)
# Inference
import treelite_runtime
predictor = treelite_runtime.Predictor('./mymodel.so', verbose=True)
y_pred_opti = predictor.predict(X_data)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment