Skip to main content

Convert scikit-learn models to ONNX

Project description

Introduction

sklearn-onnx converts scikit-learn models to ONNX. Once in the ONNX format, you can use tools like ONNX Runtime for high performance scoring. All converters are tested with onnxruntime. Any external converter can be registered to convert scikit-learn pipeline including models or transformers coming from external libraries.

Documentation

Full documentation including tutorials is available at https://onnx.ai/sklearn-onnx/. Supported scikit-learn Models Last supported opset is 21.

You may also find answers in existing issues or submit a new one.

Installation

You can install from PyPi:

pip install skl2onnx

Or you can install from the source with the latest changes.

pip install git+https://github.com/onnx/sklearn-onnx.git

Getting started

# Train a model.
import numpy as np
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier

iris = load_iris()
X, y = iris.data, iris.target
X = X.astype(np.float32)
X_train, X_test, y_train, y_test = train_test_split(X, y)
clr = RandomForestClassifier()
clr.fit(X_train, y_train)

# Convert into ONNX format.
from skl2onnx import to_onnx

onx = to_onnx(clr, X[:1])
with open("rf_iris.onnx", "wb") as f:
    f.write(onx.SerializeToString())

# Compute the prediction with onnxruntime.
import onnxruntime as rt

sess = rt.InferenceSession("rf_iris.onnx", providers=["CPUExecutionProvider"])
input_name = sess.get_inputs()[0].name
label_name = sess.get_outputs()[0].name
pred_onx = sess.run([label_name], {input_name: X_test.astype(np.float32)})[0]

Contribute

We welcome contributions in the form of feedback, ideas, or code.

License

Apache License v2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skl2onnx-1.17.0.tar.gz (932.0 kB view details)

Uploaded Source

Built Distribution

skl2onnx-1.17.0-py2.py3-none-any.whl (298.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file skl2onnx-1.17.0.tar.gz.

File metadata

  • Download URL: skl2onnx-1.17.0.tar.gz
  • Upload date:
  • Size: 932.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for skl2onnx-1.17.0.tar.gz
Algorithm Hash digest
SHA256 7127dc84e470f489f68094ccfff9a5a815b609f700d43e708e6f658a33b06403
MD5 45430253a2d562505054fe3d230948d8
BLAKE2b-256 f29153c1d0085fb11c6ae2b2092160f55380fa361b8ced1144eada49add70adb

See more details on using hashes here.

File details

Details for the file skl2onnx-1.17.0-py2.py3-none-any.whl.

File metadata

  • Download URL: skl2onnx-1.17.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 298.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for skl2onnx-1.17.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 27942fc2743efe9dff56380001da4685812d0f5b1b0b9c1a032e80d059d6779a
MD5 a98dfdb5acd28986e98422145525e6f0
BLAKE2b-256 61db343223f105c34cbf8dd1237693e8628deb5009f2a9c4f2e3d2c6546f2766

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page