Пример #1
0
def test_class_enumerator_parameters():
    class SomeModule:
        class SomeClass(cuml.Base):
            def __eq__(self, other):
                return type(other) == type(self)

    models1 = ClassEnumerator(module=SomeModule).get_models()
    models2 = ClassEnumerator(module=SomeModule,
                              exclude_classes=[SomeModule.SomeClass
                                               ]).get_models()
    models3 = ClassEnumerator(module=SomeModule,
                              custom_constructors={
                                  'SomeClass': lambda: SomeModule.SomeClass()
                              }).get_models()

    assert models1 == {'SomeClass': SomeModule.SomeClass}
    assert models2 == {}
    assert len(
        models3) == 1 and models3['SomeClass']() == SomeModule.SomeClass()
Пример #2
0
def test_class_enumerator_actual_module():
    module = ClassEnumerator(module=cuml.linear_model,
                             exclude_classes=[
                                 cuml.LinearRegression, cuml.MBSGDClassifier,
                                 cuml.MBSGDRegressor
                             ],
                             custom_constructors={
                                 'LogisticRegression':
                                 lambda: cuml.LogisticRegression(handle=1)
                             })
    models = module.get_models()
    ref = {
        'ElasticNet': cuml.ElasticNet,
        'Lasso': cuml.Lasso,
        'LogisticRegression': lambda: cuml.LogisticRegression(handle=1),
        'Ridge': cuml.Ridge
    }

    assert models['LogisticRegression']().handle == ref['LogisticRegression'](
    ).handle
    models.pop('LogisticRegression')
    ref.pop('LogisticRegression')
    assert models == ref
Пример #3
0
def test_class_enumerator():
    class SomeModule:
        class SomeClass(cuml.Base):
            pass

        class ExcludedClass(cuml.Base):
            pass

        class CustomConstructorClass(cuml.Base):
            def __init__(self, *, some_parameter):
                self.some_parameter = some_parameter

            def __eq__(self, other):
                return self.some_parameter == other.some_parameter

    module = ClassEnumerator(
        module=SomeModule,
        exclude_classes=[SomeModule.ExcludedClass],
        custom_constructors={
            "CustomConstructorClass":
            lambda: SomeModule.CustomConstructorClass(some_parameter=1)
        })

    models = module.get_models()
    ref = {
        "SomeClass":
        SomeModule.SomeClass,
        "CustomConstructorClass":
        lambda: SomeModule.CustomConstructorClass(some_parameter=1)
    }

    # Here we don't do `assert models == ref` because CustomConstructorClass is
    # a lambda.
    assert len(models) == len(ref) == 2
    assert models['SomeClass'] == ref['SomeClass']
    assert models['CustomConstructorClass']() == ref['CustomConstructorClass'](
    )
Пример #4
0
from cuml import LinearRegression as reg
from cuml import PCA
from cuml.experimental.explainer.common import get_cai_ptr
from cuml.experimental.explainer.common import get_dtype_from_model_func
from cuml.experimental.explainer.common import get_handle_from_cuml_model_func
from cuml.experimental.explainer.common import get_link_fn_from_str_or_fn
from cuml.experimental.explainer.common import get_tag_from_model_func
from cuml.experimental.explainer.common import link_dict
from cuml.experimental.explainer.common import model_func_call
from cuml.test.utils import ClassEnumerator
from cuml.datasets import make_regression
from sklearn.linear_model import LinearRegression as skreg


models_config = ClassEnumerator(module=cuml)
models = models_config.get_models()

_default_tags = [
    'preferred_input_order',
    'X_types_gpu',
    'non_deterministic',
    'requires_positive_X',
    'requires_positive_y',
    'X_types',
    'poor_score',
    'no_validation',
    'multioutput',
    'allow_nan',
    'stateless',
    'multilabel',
Пример #5
0
import cuml
import numpy as np
import pickle
import pytest

from cuml.test import test_arima
from cuml.tsa.arima import ARIMA
from cuml.test.utils import array_equal, unit_param, stress_param, \
    ClassEnumerator, get_classes_from_package
from cuml.test.test_svm import compare_svm
from sklearn.base import clone
from sklearn.datasets import load_iris, make_classification, make_regression
from sklearn.manifold.t_sne import trustworthiness
from sklearn.model_selection import train_test_split

regression_config = ClassEnumerator(module=cuml.linear_model)
regression_models = regression_config.get_models()

solver_config = ClassEnumerator(
    module=cuml.solvers,
    # QN uses softmax here because some of the tests uses multiclass
    # logistic regression which requires a softmax loss
    custom_constructors={"QN": lambda: cuml.QN(loss="softmax")})
solver_models = solver_config.get_models()

cluster_config = ClassEnumerator(module=cuml.cluster,
                                 exclude_classes=[cuml.DBSCAN])
cluster_models = cluster_config.get_models()

decomposition_config = ClassEnumerator(module=cuml.decomposition)
decomposition_models = decomposition_config.get_models()
Пример #6
0
def test_class_enumerator_empty_module():
    class EmptyModule:
        pass

    assert {} == ClassEnumerator(EmptyModule).get_models()