def max_onnxruntime_opset(): """ See `Versioning.md <https://github.com/microsoft/onnxruntime/blob/ master/docs/Versioning.md>`_. """ vi = pv.Version(ort_version.split('+')[0]) if vi >= pv.Version("1.12.0"): return 17 if vi >= pv.Version("1.11.0"): return 16 if vi >= pv.Version("1.10.0"): return 15 if vi >= pv.Version("1.9.0"): return 15 if vi >= pv.Version("1.8.0"): return 14 if vi >= pv.Version("1.6.0"): return 13 if vi >= pv.Version("1.3.0"): return 12 if vi >= pv.Version("1.0.0"): return 11 if vi >= pv.Version("0.4.0"): return 10 if vi >= pv.Version("0.3.0"): return 9 return 8
from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.exceptions import ConvergenceWarning try: from sklearn.utils._testing import ignore_warnings except ImportError: from sklearn.utils.testing import ignore_warnings from skl2onnx import convert_sklearn from skl2onnx.common.data_types import (FloatTensorType, Int64TensorType) from test_utils import (dump_data_and_model, dump_multiple_classification, fit_classification_model, fit_multilabel_classification_model, TARGET_OPSET) warnings_to_skip = (DeprecationWarning, FutureWarning, ConvergenceWarning) ort_version = '.'.join(ort_version.split('.')[:2]) class TestOneVsRestClassifierConverter(unittest.TestCase): @ignore_warnings(category=warnings_to_skip) def test_ovr(self): model = OneVsRestClassifier(LogisticRegression()) dump_multiple_classification(model, target_opset=TARGET_OPSET) @unittest.skipIf(pv.Version(ort_version) <= pv.Version('1.4.0'), reason="onnxruntime too old") @ignore_warnings(category=warnings_to_skip) def test_ovr_rf(self): model = OneVsRestClassifier( RandomForestClassifier(n_estimators=2, max_depth=2)) model, X = fit_classification_model(model,
"""Tests scikit-LabelEncoder converter""" import unittest import packaging.version as pv import numpy as np from onnxruntime import __version__ as ort_version from sklearn.preprocessing import LabelEncoder from skl2onnx import convert_sklearn from skl2onnx.common.data_types import ( FloatTensorType, Int64TensorType, StringTensorType, ) from test_utils import dump_data_and_model, TARGET_OPSET ort_version = ".".join(ort_version.split('.')[:2]) class TestSklearnLabelEncoderConverter(unittest.TestCase): @unittest.skipIf(pv.Version(ort_version) < pv.Version("0.3.0"), reason="onnxruntime too old") def test_model_label_encoder(self): model = LabelEncoder() data = ["str3", "str2", "str0", "str1", "str3"] model.fit(data) model_onnx = convert_sklearn(model, "scikit-learn label encoder", [("input", StringTensorType([None]))], target_opset=TARGET_OPSET) self.assertTrue(model_onnx is not None) self.assertTrue(model_onnx.graph.node is not None)
from skl2onnx.common._apply_operation import apply_less except ImportError: # onnxconverter-common is too old apply_less = None from skl2onnx import convert_sklearn from skl2onnx.common.data_types import ( BooleanTensorType, FloatTensorType, Int64TensorType, ) from skl2onnx.operator_converters.ada_boost import _scikit_learn_before_022 from onnxruntime import __version__ as ort_version from test_utils import (dump_data_and_model, fit_regression_model, TARGET_OPSET) ort_version = ort_version.split('+')[0] class TestSklearnSVM(unittest.TestCase): def _fit_binary_classification(self, model): iris = load_iris() X = iris.data[:, :3] y = iris.target y[y == 2] = 1 model.fit(X, y) return model, X[:5].astype(numpy.float32) def _fit_one_class_svm(self, model): iris = load_iris() X = iris.data[:, :3] model.fit(X)
import unittest import numpy as np try: from sklearn.linear_model import GammaRegressor except ImportError: GammaRegressor = None from onnxruntime import __version__ as ort_version from skl2onnx import convert_sklearn from skl2onnx.common.data_types import ( FloatTensorType, ) from test_utils import (dump_data_and_model, TARGET_OPSET) ort_version = ".".join(ort_version.split(".")[:2]) class TestGammaRegressorConverter(unittest.TestCase): @unittest.skipIf(GammaRegressor is None, reason="scikit-learn<1.0") def test_gamma_regressor(self): model = GammaRegressor() X = np.array([[1, 2], [2, 3], [3, 4], [4, 3]]) y = np.array([19, 26, 33, 30]) model.fit(X, y) test_x = np.array([[1, 0], [2, 8]]) model_onnx = convert_sklearn( model, "scikit-learn Gamma Regressor",