Skip to content
This repository has been archived by the owner on Jan 13, 2024. It is now read-only.

Commit

Permalink
fix unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sdpython committed Apr 5, 2020
1 parent 17dbeb8 commit 11a9659
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 27 deletions.
25 changes: 17 additions & 8 deletions _unittests/ut_onnxrt/test_onnxrt_python_runtime_scan.py
Expand Up @@ -14,6 +14,7 @@
from skl2onnx.common.data_types import FloatTensorType
from skl2onnx import __version__ as skl2onnx_version
from mlprodict.onnxrt import OnnxInference
from mlprodict.tools import get_opset_number_from_onnx


class TestOnnxrtPythonRuntimeScan(ExtTestCase):
Expand All @@ -28,12 +29,14 @@ def test_pdist(self):
x = numpy.array([1, 2, 4, 5, 5, 4]).astype(
numpy.float32).reshape((3, 2))
cop = OnnxAdd('input', 'input')
cdist = onnx_squareform_pdist(cop, dtype=numpy.float32)
cdist = onnx_squareform_pdist(
cop, dtype=numpy.float32, op_version=get_opset_number_from_onnx())
cop2 = OnnxIdentity(cdist, output_names=['cdist'])

model_def = cop2.to_onnx(
{'input': FloatTensorType()},
outputs=[('cdist', FloatTensorType())])
outputs=[('cdist', FloatTensorType())],
target_opset=get_opset_number_from_onnx())

sess = OnnxInference(model_def)
res = sess.run({'input': x})
Expand All @@ -55,12 +58,14 @@ def test_onnx_example_cdist_in(self):
x2 = numpy.array([1.1, 2.1, 4.01, 5.01, 5.001, 4.001, 0, 0]).astype(
numpy.float32).reshape((4, 2))
cop = OnnxAdd('input', 'input')
cop2 = OnnxIdentity(onnx_cdist(cop, x2, dtype=numpy.float32),
cop2 = OnnxIdentity(onnx_cdist(cop, x2, dtype=numpy.float32,
op_version=get_opset_number_from_onnx()),
output_names=['cdist'])

model_def = cop2.to_onnx(
inputs=[('input', FloatTensorType([None, None]))],
outputs=[('cdist', FloatTensorType(None, None))])
outputs=[('cdist', FloatTensorType(None, None))],
target_opset=get_opset_number_from_onnx())

sess = OnnxInference(model_def)
res = sess.run({'input': x})
Expand All @@ -76,12 +81,14 @@ def test_onnx_example_cdist_in(self):
[5.6, 2.9, 3.6, 1.3],
[6.9, 3.1, 5.1, 2.3]], dtype=numpy.float32)
cop = OnnxAdd('input', 'input')
cop2 = OnnxIdentity(onnx_cdist(cop, x, dtype=numpy.float32),
cop2 = OnnxIdentity(onnx_cdist(cop, x, dtype=numpy.float32,
op_version=get_opset_number_from_onnx()),
output_names=['cdist'])

model_def = cop2.to_onnx(
inputs=[('input', FloatTensorType([None, None]))],
outputs=[('cdist', FloatTensorType())])
outputs=[('cdist', FloatTensorType())],
target_opset=get_opset_number_from_onnx())

sess = OnnxInference(model_def)
res = sess.run({'input': x})
Expand All @@ -100,10 +107,12 @@ def test_onnx_example_cdist_bigger(self):
X_test = X[1::2]
# y_test = y[1::2]
onx = OnnxIdentity(onnx_cdist(OnnxIdentity('X'), X_train.astype(numpy.float32),
metric="euclidean", dtype=numpy.float32),
metric="euclidean", dtype=numpy.float32,
op_version=get_opset_number_from_onnx()),
output_names=['Y'])
final = onx.to_onnx(inputs=[('X', FloatTensorType([None, None]))],
outputs=[('Y', FloatTensorType())])
outputs=[('Y', FloatTensorType())],
target_opset=get_opset_number_from_onnx())

oinf = OnnxInference(final, runtime="python")
res = oinf.run({'X': X_train.astype(numpy.float32)})['Y']
Expand Down
7 changes: 5 additions & 2 deletions _unittests/ut_onnxrt/test_onnxrt_simple.py
Expand Up @@ -26,6 +26,7 @@
from skl2onnx import __version__ as skl2onnx_version
from mlprodict.onnx_conv import to_onnx
from mlprodict.onnxrt import OnnxInference
from mlprodict.tools import get_opset_number_from_onnx


class TestOnnxrtSimple(ExtTestCase):
Expand Down Expand Up @@ -291,11 +292,13 @@ def test_onnxt_pdist_dot(self):
x = numpy.array([1, 2, 4, 5, 5, 4]).astype(
numpy.float32).reshape((3, 2))
cop = OnnxAdd('input', 'input')
cdist = onnx_squareform_pdist(cop, dtype=numpy.float32)
cdist = onnx_squareform_pdist(cop, dtype=numpy.float32,
op_version=get_opset_number_from_onnx())
cop2 = OnnxIdentity(cdist, output_names=['cdist'])

model_def = cop2.to_onnx(
{'input': x}, outputs=[('cdist', FloatTensorType())])
{'input': x}, outputs=[('cdist', FloatTensorType())],
target_opset=get_opset_number_from_onnx())

oinf = OnnxInference(model_def, skip_run=True)
dot = oinf.to_dot(recursive=True)
Expand Down
19 changes: 13 additions & 6 deletions _unittests/ut_onnxrt/test_optim_onnx_identity.py
Expand Up @@ -17,6 +17,7 @@
from mlprodict.onnxrt.optim.onnx_helper import onnx_statistics
from mlprodict.onnxrt import OnnxInference
from mlprodict.onnxrt.optim import onnx_remove_node_identity
from mlprodict.tools import get_opset_number_from_onnx


class TestOptimOnnxIdentity(ExtTestCase):
Expand All @@ -27,12 +28,14 @@ def test_onnx_remove_identities(self):
x = numpy.array([1, 2, 4, 5, 5, 4]).astype(
numpy.float32).reshape((3, 2))
cop = OnnxAdd(OnnxIdentity('input'), 'input')
cdist = onnx_squareform_pdist(cop, dtype=numpy.float32)
cdist = onnx_squareform_pdist(
cop, dtype=numpy.float32, op_version=get_opset_number_from_onnx())
cop2 = OnnxIdentity(cdist, output_names=['cdist'])

model_def = cop2.to_onnx(
{'input': FloatTensorType()},
outputs=[('cdist', FloatTensorType())])
outputs=[('cdist', FloatTensorType())],
target_opset=get_opset_number_from_onnx())
stats = onnx_statistics(model_def, optim=False)
self.assertIn('subgraphs', stats)
self.assertGreater(stats['subgraphs'], 1)
Expand All @@ -56,12 +59,14 @@ def test_onnx_remove_identities2(self):
x = numpy.array([1, 2, 4, 5, 5, 4]).astype(
numpy.float32).reshape((3, 2))
cop = OnnxIdentity('input')
cdist = onnx_squareform_pdist(cop, dtype=numpy.float32)
cdist = onnx_squareform_pdist(
cop, dtype=numpy.float32, op_version=get_opset_number_from_onnx())
cop2 = OnnxIdentity(cdist, output_names=['cdist'])

model_def = cop2.to_onnx(
{'input': FloatTensorType()},
outputs=[('cdist', FloatTensorType())])
outputs=[('cdist', FloatTensorType())],
target_opset=get_opset_number_from_onnx())
stats = onnx_statistics(model_def, optim=False)
self.assertIn('subgraphs', stats)
self.assertGreater(stats['subgraphs'], 1)
Expand All @@ -83,12 +88,14 @@ def test_onnx_example_cdist_in_euclidean(self):
x2 = numpy.array([1.1, 2.1, 4.01, 5.01, 5.001, 4.001, 0, 0]).astype(
numpy.float32).reshape((4, 2))
cop = OnnxAdd('input', 'input')
cop2 = OnnxIdentity(onnx_cdist(cop, x2, dtype=numpy.float32, metric='euclidean'),
cop2 = OnnxIdentity(onnx_cdist(cop, x2, dtype=numpy.float32, metric='euclidean',
op_version=get_opset_number_from_onnx()),
output_names=['cdist'])

model_def = cop2.to_onnx(
inputs=[('input', FloatTensorType([None, None]))],
outputs=[('cdist', FloatTensorType())])
outputs=[('cdist', FloatTensorType())],
target_opset=get_opset_number_from_onnx())

new_model = onnx_remove_node_identity(model_def)
stats = onnx_statistics(model_def, optim=False)
Expand Down
22 changes: 15 additions & 7 deletions _unittests/ut_onnxrt/test_optim_onnx_redundant.py
Expand Up @@ -11,7 +11,9 @@
from skl2onnx.common.data_types import FloatTensorType
from mlprodict.onnxrt.optim.onnx_helper import onnx_statistics
from mlprodict.onnxrt import OnnxInference
from mlprodict.onnxrt.optim import onnx_remove_node_redundant, onnx_remove_node, onnx_optimisations
from mlprodict.onnxrt.optim import (
onnx_remove_node_redundant, onnx_remove_node, onnx_optimisations)
from mlprodict.tools import get_opset_number_from_onnx


class TestOptimOnnxRedundant(ExtTestCase):
Expand Down Expand Up @@ -85,13 +87,16 @@ def test_onnx_remove_redundant_subgraphs(self):
x = numpy.array([1, 2, 4, 5, 5, 4]).astype(
numpy.float32).reshape((3, 2))
cop = OnnxAdd(OnnxIdentity('input'), 'input')
cdist = onnx_squareform_pdist(cop, dtype=numpy.float32)
cdist2 = onnx_squareform_pdist(cop, dtype=numpy.float32)
cdist = onnx_squareform_pdist(
cop, dtype=numpy.float32, op_version=get_opset_number_from_onnx())
cdist2 = onnx_squareform_pdist(
cop, dtype=numpy.float32, op_version=get_opset_number_from_onnx())
cop2 = OnnxAdd(cdist, cdist2, output_names=['cdist'])

model_def = cop2.to_onnx(
{'input': FloatTensorType()},
outputs=[('cdist', FloatTensorType())])
outputs=[('cdist', FloatTensorType())],
target_opset=get_opset_number_from_onnx())
c1 = model_def.SerializeToString()
stats = onnx_statistics(model_def, optim=False)
c2 = model_def.SerializeToString()
Expand Down Expand Up @@ -125,13 +130,16 @@ def test_onnx_remove_redundant_subgraphs(self):
def test_onnx_remove_redundant_subgraphs_full(self):
from skl2onnx.algebra.complex_functions import onnx_squareform_pdist
cop = OnnxAdd(OnnxIdentity('input'), 'input')
cdist = onnx_squareform_pdist(cop, dtype=numpy.float32)
cdist2 = onnx_squareform_pdist(cop, dtype=numpy.float32)
cdist = onnx_squareform_pdist(
cop, dtype=numpy.float32, op_version=get_opset_number_from_onnx())
cdist2 = onnx_squareform_pdist(
cop, dtype=numpy.float32, op_version=get_opset_number_from_onnx())
cop2 = OnnxAdd(cdist, cdist2, output_names=['cdist'])

model_def = cop2.to_onnx(
{'input': FloatTensorType()},
outputs=[('cdist', FloatTensorType())])
outputs=[('cdist', FloatTensorType())],
target_opset=get_opset_number_from_onnx())
stats = onnx_statistics(model_def, optim=False)
new_model = onnx_optimisations(model_def)
stats2 = onnx_statistics(new_model, optim=False)
Expand Down
7 changes: 5 additions & 2 deletions _unittests/ut_onnxrt/test_shape_object.py
Expand Up @@ -18,6 +18,7 @@
BaseDimensionShape
)
from mlprodict.onnxrt import OnnxInference
from mlprodict.tools import get_opset_number_from_onnx


class TestShapeObject(ExtTestCase):
Expand Down Expand Up @@ -268,10 +269,12 @@ def test_onnx_example_cdist_bigger(self):
X_test = X[1::2]
# y_test = y[1::2]
onx = OnnxIdentity(onnx_cdist(OnnxIdentity('X'), X_train.astype(numpy.float32),
metric="euclidean", dtype=numpy.float32),
metric="euclidean", dtype=numpy.float32,
op_version=get_opset_number_from_onnx()),
output_names=['Y'])
final = onx.to_onnx(inputs=[('X', FloatTensorType([None, None]))],
outputs=[('Y', FloatTensorType())])
outputs=[('Y', FloatTensorType())],
target_opset=get_opset_number_from_onnx())

oinf = OnnxInference(final, runtime="python")
res = oinf.run({'X': X_train.astype(numpy.float32)})['Y']
Expand Down
7 changes: 5 additions & 2 deletions _unittests/ut_onnxrt/test_sklearn_helper.py
Expand Up @@ -24,6 +24,7 @@
from mlprodict.onnxrt.optim.sklearn_helper import enumerate_pipeline_models, inspect_sklearn_model
from mlprodict.onnxrt.optim.onnx_helper import onnx_statistics
from mlprodict.onnx_conv import to_onnx
from mlprodict.tools import get_opset_number_from_onnx


class TestSklearnHelper(ExtTestCase):
Expand Down Expand Up @@ -132,12 +133,14 @@ def test_statistics_pipeline_sgd(self):
def test_onnx_stat_recursive(self):
from skl2onnx.algebra.complex_functions import onnx_squareform_pdist
cop = OnnxAdd(OnnxIdentity('input'), 'input')
cdist = onnx_squareform_pdist(cop, dtype=numpy.float32)
cdist = onnx_squareform_pdist(
cop, dtype=numpy.float32, op_version=get_opset_number_from_onnx())
cop2 = OnnxIdentity(cdist, output_names=['cdist'])

model_def = cop2.to_onnx(
{'input': FloatTensorType()},
outputs=[('cdist', FloatTensorType())])
outputs=[('cdist', FloatTensorType())],
target_opset=get_opset_number_from_onnx())
stats = onnx_statistics(model_def)
self.assertIn('subgraphs', stats)
self.assertGreater(stats['subgraphs'], 1)
Expand Down

0 comments on commit 11a9659

Please sign in to comment.