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

Commit

Permalink
better opset version in unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sdpython committed Jun 3, 2020
1 parent d2b2c71 commit 3ca76f1
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 33 deletions.
93 changes: 60 additions & 33 deletions _unittests/ut_onnxrt/test_onnxrt_simple.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ def test_onnxt_idi(self):
idi = numpy.identity(2)
onx = OnnxAdd('X', idi, output_names=['Y'],
op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)})
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)},
target_opset=get_opset_number_from_onnx())

oinf = OnnxInference(model_def)
res = str(oinf)
Expand All @@ -66,9 +67,10 @@ def test_onnxt_idi(self):

def test_onnxt_pickle_check(self):
idi = numpy.identity(2)
onx = OnnxAdd('X', idi, output_names=[
'Y'], op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)})
onx = OnnxAdd('X', idi, output_names=['Y'],
op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)},
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
shape = oinf.shape_inference()
self.assertNotEmpty(shape)
Expand All @@ -86,9 +88,12 @@ def test_onnxt_pickle_check(self):
def test_onnxt_dot(self):
idi = numpy.identity(2)
idi2 = numpy.identity(2) * 2
onx = OnnxAdd(OnnxAdd('X', idi, op_version=get_opset_number_from_onnx(
)), idi2, output_names=['Y'], op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)})
onx = OnnxAdd(
OnnxAdd('X', idi, op_version=get_opset_number_from_onnx()),
idi2, output_names=['Y'],
op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)},
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
dot = oinf.to_dot()
self.assertIn('Add [', dot)
Expand All @@ -103,9 +108,12 @@ def test_onnxt_dot(self):
def test_onnxt_dot_shape(self):
idi = numpy.identity(2)
idi2 = numpy.identity(2) * 2
onx = OnnxAdd(OnnxAdd('X', idi, op_version=get_opset_number_from_onnx(
)), idi2, output_names=['Y'], op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)})
onx = OnnxAdd(
OnnxAdd('X', idi, op_version=get_opset_number_from_onnx()),
idi2, output_names=['Y'],
op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)},
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
dot = oinf.to_dot(add_rt_shapes=True)
self.assertIn('Add [', dot)
Expand All @@ -124,7 +132,8 @@ def test_onnxt_lreg(self):
post_transform='NONE')
onx = OnnxLinearRegressor('X', output_names=['Y'], **pars)
model_def = onx.to_onnx({'X': pars['coefficients'].astype(numpy.float32)},
outputs=[('Y', FloatTensorType([1]))])
outputs=[('Y', FloatTensorType([1]))],
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
dot = oinf.to_dot()
self.assertIn('coefficients=[1. 2.]', dot)
Expand All @@ -136,7 +145,8 @@ def test_onnxt_lrc(self):
onx = OnnxLinearClassifier('X', output_names=['Y', 'Yp'], **pars)
model_def = onx.to_onnx({'X': pars['coefficients'].astype(numpy.float32)},
outputs=[('Y', Int64TensorType()),
('Yp', FloatTensorType())])
('Yp', FloatTensorType())],
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
dot = oinf.to_dot()
self.assertIn('coefficients=[1. 2.]', dot)
Expand All @@ -149,7 +159,8 @@ def test_onnxt_lrc_iris(self):
clr = LogisticRegression(solver="liblinear")
clr.fit(X_train, y_train)

model_def = to_onnx(clr, X_train.astype(numpy.float32))
model_def = to_onnx(clr, X_train.astype(numpy.float32),
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
dot = oinf.to_dot()
self.assertIn('ZipMap', dot)
Expand All @@ -162,7 +173,8 @@ def test_onnxt_lrc_iris_json(self):
clr = LogisticRegression(solver="liblinear")
clr.fit(X_train, y_train)

model_def = to_onnx(clr, X_train.astype(numpy.float32))
model_def = to_onnx(clr, X_train.astype(numpy.float32),
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
js = oinf.to_json()
self.assertIn('"producer_name": "skl2onnx",', js)
Expand All @@ -177,19 +189,25 @@ def test_onnxt_lrc_iris_json(self):
def test_onnxt_json(self):
idi = numpy.identity(2)
idi2 = numpy.identity(2) * 2
onx = OnnxAdd(OnnxAdd('X', idi, op_version=get_opset_number_from_onnx(
)), idi2, output_names=['Y'], op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)})
onx = OnnxAdd(
OnnxAdd('X', idi, op_version=get_opset_number_from_onnx()),
idi2, output_names=['Y'],
op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)},
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
js = oinf.to_json()
self.assertIn('"initializers": {', js)

def test_onnxt_graph(self):
idi = numpy.identity(2)
idi2 = numpy.identity(2) * 2
onx = OnnxAdd(OnnxAdd('X', idi, op_version=get_opset_number_from_onnx(
)), idi2, output_names=['Y'], op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)})
onx = OnnxAdd(
OnnxAdd('X', idi, op_version=get_opset_number_from_onnx()),
idi2, output_names=['Y'],
op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)},
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
js = oinf.to_sequence()
self.assertIn('inits', js)
Expand All @@ -204,9 +222,12 @@ def test_onnxt_graph(self):
def test_onnxt_run(self):
idi = numpy.identity(2)
idi2 = numpy.identity(2) * 2
onx = OnnxAdd(OnnxAdd('X', idi, op_version=get_opset_number_from_onnx(
)), idi2, output_names=['Y'], op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)})
onx = OnnxAdd(
OnnxAdd('X', idi, op_version=get_opset_number_from_onnx()),
idi2, output_names=['Y'],
op_version=get_opset_number_from_onnx())
model_def = onx.to_onnx({'X': idi.astype(numpy.float32)},
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
X = numpy.array([[1, 1], [3, 3]])
y = oinf.run({'X': X.astype(numpy.float32)})
Expand All @@ -221,7 +242,8 @@ def test_onnxt_lrreg_iris_run(self):
clr = LinearRegression()
clr.fit(X_train, y_train)

model_def = to_onnx(clr, X_train.astype(numpy.float32))
model_def = to_onnx(clr, X_train.astype(numpy.float32),
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
y = oinf.run({'X': X_test})
exp = clr.predict(X_test)
Expand All @@ -235,7 +257,8 @@ def test_onnxt_lrc_iris_run(self):
clr = LogisticRegression(solver="liblinear")
clr.fit(X_train, y_train)

model_def = to_onnx(clr, X_train.astype(numpy.float32))
model_def = to_onnx(clr, X_train.astype(numpy.float32),
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
y = oinf.run({'X': X_test})
self.assertEqual(list(sorted(y)), [
Expand All @@ -254,7 +277,8 @@ def test_onnxt_knn_iris_dot(self):
clr = KNeighborsClassifier()
clr.fit(X_train, y_train)

model_def = to_onnx(clr, X_train.astype(numpy.float32))
model_def = to_onnx(clr, X_train.astype(numpy.float32),
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def, skip_run=True)
dot = oinf.to_dot()
self.assertNotIn("class_labels_0 -> ;", dot)
Expand All @@ -266,7 +290,8 @@ def test_getitem(self):
clr = KNeighborsClassifier()
clr.fit(X_train, y_train)

model_def = to_onnx(clr, X_train.astype(numpy.float32))
model_def = to_onnx(clr, X_train.astype(numpy.float32),
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def, skip_run=True)

exp_name = 'Ar_ArrayFeatureExtractor'
Expand All @@ -285,9 +310,11 @@ def test_constant_of_shape(self):
tensor_value = make_tensor(
"value", TensorProto.FLOAT, (1,), [-5]) # pylint: disable=E1101
cop2 = OnnxConstantOfShape(OnnxShape('input'), value=tensor_value,
output_names=['mat'])
output_names=['mat'],
op_version=get_opset_number_from_onnx())
model_def = cop2.to_onnx({'input': x},
outputs=[('mat', FloatTensorType())])
outputs=[('mat', FloatTensorType())],
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def, skip_run=True)
dot = oinf.to_dot()
self.assertIn('ConstantOfShape', dot)
Expand All @@ -300,8 +327,8 @@ def test_onnxt_pdist_dot(self):
op_version=get_opset_number_from_onnx())
cdist = onnx_squareform_pdist(cop, dtype=numpy.float32,
op_version=get_opset_number_from_onnx())
cop2 = OnnxIdentity(cdist, output_names=[
'cdist'], op_version=get_opset_number_from_onnx())
cop2 = OnnxIdentity(cdist, output_names=['cdist'],
op_version=get_opset_number_from_onnx())

model_def = cop2.to_onnx(
{'input': x}, outputs=[('cdist', FloatTensorType())],
Expand All @@ -319,7 +346,8 @@ def test_onnxt_lrc_iris_run_node_time(self):
clr = LogisticRegression(solver="liblinear")
clr.fit(X_train, y_train)

model_def = to_onnx(clr, X_train.astype(numpy.float32))
model_def = to_onnx(clr, X_train.astype(numpy.float32),
target_opset=get_opset_number_from_onnx())
oinf = OnnxInference(model_def)
_, mt = oinf.run({'X': X_test}, node_time=True)
self.assertIsInstance(mt, list)
Expand All @@ -339,5 +367,4 @@ def myprint(*args):


if __name__ == "__main__":
TestOnnxrtSimple().test_onnxt_pickle_check()
unittest.main()
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
autopep8
git+https://github.com/sdpython/asv.git@jenkins
chardet
coverage>=5.0
Expand Down

0 comments on commit 3ca76f1

Please sign in to comment.