Module hummingbird.ml.operator_converters.sklearn.skl_scaler

Converters for scikit-learn scalers: RobustScaler, MaxAbsScaler, MinMaxScaler, StandardScaler.

Expand source code Browse git
# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------

"""
Converters for scikit-learn scalers: RobustScaler, MaxAbsScaler, MinMaxScaler, StandardScaler.
"""

import numpy as np
from onnxconverter_common.registration import register_converter

from .._scaler_implementations import Scaler


def convert_sklearn_robust_scaler(operator, device, extra_config):
    scale = operator.raw_operator.scale_
    if scale is not None:
        scale = np.reciprocal(scale)
    return Scaler(operator.raw_operator.center_, scale, device)


def convert_sklearn_max_abs_scaler(operator, device, extra_config):
    scale = operator.raw_operator.scale_
    if scale is not None:
        scale = np.reciprocal(scale)
    return Scaler(0, scale, device)


def convert_sklearn_min_max_scaler(operator, device, extra_config):
    scale = [x for x in operator.raw_operator.scale_]
    offset = [-1.0 / x * y for x, y in zip(operator.raw_operator.scale_, operator.raw_operator.min_)]
    return Scaler(offset, scale, device)


def convert_sklearn_standard_scaler(operator, device, extra_config):
    scale = operator.raw_operator.scale_
    if scale is not None:
        scale = np.reciprocal(scale)
    return Scaler(operator.raw_operator.mean_, scale, device)


register_converter("SklearnRobustScaler", convert_sklearn_robust_scaler)
register_converter("SklearnMaxAbsScaler", convert_sklearn_max_abs_scaler)
register_converter("SklearnMinMaxScaler", convert_sklearn_min_max_scaler)
register_converter("SklearnStandardScaler", convert_sklearn_standard_scaler)

Functions

def convert_sklearn_max_abs_scaler(operator, device, extra_config)
Expand source code Browse git
def convert_sklearn_max_abs_scaler(operator, device, extra_config):
    scale = operator.raw_operator.scale_
    if scale is not None:
        scale = np.reciprocal(scale)
    return Scaler(0, scale, device)
def convert_sklearn_min_max_scaler(operator, device, extra_config)
Expand source code Browse git
def convert_sklearn_min_max_scaler(operator, device, extra_config):
    scale = [x for x in operator.raw_operator.scale_]
    offset = [-1.0 / x * y for x, y in zip(operator.raw_operator.scale_, operator.raw_operator.min_)]
    return Scaler(offset, scale, device)
def convert_sklearn_robust_scaler(operator, device, extra_config)
Expand source code Browse git
def convert_sklearn_robust_scaler(operator, device, extra_config):
    scale = operator.raw_operator.scale_
    if scale is not None:
        scale = np.reciprocal(scale)
    return Scaler(operator.raw_operator.center_, scale, device)
def convert_sklearn_standard_scaler(operator, device, extra_config)
Expand source code Browse git
def convert_sklearn_standard_scaler(operator, device, extra_config):
    scale = operator.raw_operator.scale_
    if scale is not None:
        scale = np.reciprocal(scale)
    return Scaler(operator.raw_operator.mean_, scale, device)