The tutorial goes from a simple example which converts a pipeline to a more complex example involving operator not actually implemented in ONNX operators or ONNX ML Operators.

The tutorial was tested with following version:


import sys
import numpy
import scipy
import sklearn
import lightgbm
import onnx
import onnxmltools
import onnxruntime
import xgboost
import skl2onnx
import mlprodict
import onnxcustom
import pyquickhelper

print("python {}".format(sys.version_info))
mods = [numpy, scipy, sklearn, lightgbm, xgboost,
        onnx, onnxmltools, onnxruntime, onnxcustom,
        skl2onnx, mlprodict, pyquickhelper]
mods = [(m.__name__, m.__version__) for m in mods]
mx = max(len(_[0]) for _ in mods) + 1
for name, vers in sorted(mods):
    print("{}{}{}".format(name, " " * (mx - len(name)), vers))


    python sys.version_info(major=3, minor=9, micro=1, releaselevel='final', serial=0)
    lightgbm      3.3.1
    mlprodict     0.7.1631
    numpy         1.21.4
    onnx          1.10.2
    onnxcustom    0.2.142
    onnxmltools   1.10.0
    onnxruntime   1.10.992+cpu
    pyquickhelper 1.10.3680
    scipy         1.7.3
    skl2onnx      1.10.3
    sklearn       1.0.1
    xgboost       1.5.1