Esempio n. 1
0
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
Esempio n. 2
0
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,
Esempio n. 3
0
"""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",