Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_batchkmeans_clustering(self):
data = load_iris()
X = data.data
model = MiniBatchKMeans(n_clusters=3)
model.fit(X)
model_onnx = convert_sklearn(model, "kmeans",
[("input", FloatTensorType([None, 4]))])
self.assertIsNotNone(model_onnx)
dump_data_and_model(
X.astype(numpy.float32)[40:60],
model,
model_onnx,
basename="SklearnKMeans-Dec4",
allow_failure="StrictVersion(onnx.__version__)"
" < StrictVersion('1.2')",
def test_gaussian_mixture_comp2(self):
data = load_iris()
X = data.data
model = GaussianMixture(n_components=2)
model.fit(X)
model_onnx = convert_sklearn(model, "GM",
[("input", FloatTensorType([None, 4]))])
self.assertIsNotNone(model_onnx)
dump_data_and_model(
X.astype(np.float32)[40:60],
model,
model_onnx,
basename="GaussianMixtureC2",
intermediate_steps=True,
# Operator gemm is not implemented in onnxruntime
allow_failure="StrictVersion(onnx.__version__)"
" < StrictVersion('1.2')",
],
),
),
],
)
data = np.array(
[[0, 0, 0], [0, 0, 0.1], [1, 1, 1.1], [1, 1.1, 1]],
dtype=np.float32,
)
y = [0, 0, 1, 1]
model.fit(data, y)
model_onnx = convert_sklearn(
model,
"pipelinewithinpipeline",
[("input", FloatTensorType(data.shape))],
)
self.assertTrue(model_onnx is not None)
dump_data_and_model(
data,
model,
model_onnx,
basename="SklearnPipelinePcaPipelineMinMaxNB2",
allow_failure="StrictVersion(onnxruntime.__version__)"
" <= StrictVersion('0.2.1')",
def test_model_k_bins_discretiser_ordinal_quantile(self):
X = np.array([
[1.2, 3.2, 1.3, -5.6], [4.3, -3.2, 5.7, 1.0],
[0, 3.2, 4.7, -8.9], [0.2, 1.3, 0.6, -9.4],
[0.8, 4.2, -14.7, -28.9], [8.2, 1.9, 2.6, -5.4],
[4.8, -9.2, 33.7, 3.9], [81.2, 1., 0.6, 12.4],
[6.8, 11.2, -1.7, -2.9], [11.2, 12.9, 4.3, -1.4],
])
model = KBinsDiscretizer(n_bins=[3, 2, 3, 4],
encode="ordinal",
strategy="quantile").fit(X)
model_onnx = convert_sklearn(
model,
"scikit-learn KBinsDiscretiser",
[("input", FloatTensorType([None, X.shape[1]]))],
)
self.assertTrue(model_onnx is not None)
dump_data_and_model(
X.astype(np.float32),
model,
model_onnx,
basename="SklearnKBinsDiscretiserOrdinalQuantile",
allow_failure="StrictVersion("
"onnxruntime.__version__)"
def test_model_calibrated_classifier_cv_isotonic_binary(self):
data = load_iris()
X, y = data.data, data.target
y[y > 1] = 1
clf = KNeighborsClassifier().fit(X, y)
model = CalibratedClassifierCV(clf, cv=2, method="isotonic").fit(X, y)
model_onnx = convert_sklearn(
model,
"scikit-learn CalibratedClassifierCV",
[("input", FloatTensorType([None, X.shape[1]]))],
)
try:
self.assertTrue(model_onnx is not None)
dump_data_and_model(
X.astype(np.float32),
model,
model_onnx,
basename="SklearnCalibratedClassifierCVIsotonicBinary")
except Exception as e:
raise AssertionError("Issue with model\n{}".format(
str(model_onnx))) from e
def test_pca_parameters_arpack(self):
model, X_test = _fit_model_pca(PCA(
random_state=42, n_components=4, svd_solver='arpack'))
model_onnx = convert_sklearn(
model,
initial_types=[("input",
FloatTensorType([None, X_test.shape[1]]))],
)
self.assertTrue(model_onnx is not None)
dump_data_and_model(
X_test,
model,
model_onnx,
basename="SklearnPCAParametersArpack",
)
def test_model_ridge_classifier_cv_binary(self):
model, X = fit_classification_model(
linear_model.RidgeClassifierCV(), 2)
model_onnx = convert_sklearn(
model,
"binary ridge classifier cv",
[("input", FloatTensorType([None, X.shape[1]]))],
)
self.assertIsNotNone(model_onnx)
dump_data_and_model(
X,
model,
model_onnx,
basename="SklearnRidgeClassifierCVBin",
allow_failure="StrictVersion(onnxruntime.__version__)"
" <= StrictVersion('0.2.1')",
def test_model_linear_regression(self):
model, X = fit_regression_model(linear_model.LinearRegression())
model_onnx = convert_sklearn(
model, "linear regression",
[("input", FloatTensorType([None, X.shape[1]]))])
self.assertIsNotNone(model_onnx)
dump_data_and_model(
X,
model,
model_onnx,
basename="SklearnLinearRegression-Dec4",
allow_failure="StrictVersion("
"onnxruntime.__version__)"
def fcts_model(X, y, max_depth):
"DecisionTreeClassifier."
rf = DecisionTreeClassifier(max_depth=max_depth)
rf.fit(X, y)
initial_types = [('X', FloatTensorType([None, X.shape[1]]))]
onx = convert_sklearn(rf, initial_types=initial_types)
f = BytesIO()
f.write(onx.SerializeToString())
content = f.getvalue()
sess = InferenceSession(content)
outputs = [o.name for o in sess.get_outputs()]
def predict_skl_predict(X, model=rf):
return rf.predict(X)
def predict_skl_predict_proba(X, model=rf):
return rf.predict_proba(X)
def predict_onnxrt_predict(X, sess=sess):
return numpy.array(sess.run(outputs[:1], {'X': X.astype(np.float32)}))
def fcts_model(X, y, fit_intercept):
"LogisticRegression."
rf = LogisticRegression(fit_intercept=fit_intercept)
rf.fit(X, y)
initial_types = [('X', FloatTensorType([None, X.shape[1]]))]
onx = convert_sklearn(rf, initial_types=initial_types)
f = BytesIO()
f.write(onx.SerializeToString())
content = f.getvalue()
sess = InferenceSession(content)
outputs = [o.name for o in sess.get_outputs()]
def predict_skl_predict(X, model=rf):
return rf.predict(X)
def predict_skl_predict_proba(X, model=rf):
return rf.predict_proba(X)
def predict_onnxrt_predict(X, sess=sess):
return numpy.array(sess.run(outputs[:1], {'X': X.astype(np.float32)}))