From d7bbfaec54df2a02e19e8123661ed34d1e15b808 Mon Sep 17 00:00:00 2001 From: fengyuentau Date: Tue, 26 Mar 2024 15:03:18 +0800 Subject: [PATCH 1/3] make model and data for biased matmul using onnxruntime for inference --- .../dnn/onnx/data/input_biased_matmul.npy | Bin 0 -> 4224 bytes .../dnn/onnx/data/output_biased_matmul.npy | Bin 0 -> 16512 bytes .../generate_onnx_models_with_onnxscript.py | 26 ++++++++++++++++++ testdata/dnn/onnx/models/biased_matmul.onnx | Bin 0 -> 4691 bytes 4 files changed, 26 insertions(+) create mode 100644 testdata/dnn/onnx/data/input_biased_matmul.npy create mode 100644 testdata/dnn/onnx/data/output_biased_matmul.npy create mode 100644 testdata/dnn/onnx/models/biased_matmul.onnx diff --git a/testdata/dnn/onnx/data/input_biased_matmul.npy b/testdata/dnn/onnx/data/input_biased_matmul.npy new file mode 100644 index 0000000000000000000000000000000000000000..f75f4cbad3dd1596b9a4f5f9c3e8b356cb94d14d GIT binary patch literal 4224 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 literal 0 HcmV?d00001 diff --git a/testdata/dnn/onnx/data/output_biased_matmul.npy b/testdata/dnn/onnx/data/output_biased_matmul.npy new file mode 100644 index 0000000000000000000000000000000000000000..4f1342eb88c234d0fded8407d00adfcbf2a06027 GIT binary patch literal 16512 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 ost.FLOAT[n, c, h, w]: return add make_model_and_data(layer_norm_no_fusion, np.random.rand(n, c, h, w).astype(np.float32)) + + +''' Subgraph: [Input] -> MatMul -> Add -> [Output] +''' + +b = 2 +m = 32 +n = 64 +k = 16 + +@ost.script() +def biased_matmul(x: ost.FLOAT[b, m, k]) -> ost.FLOAT[b, m, n]: + weight = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [k, n], np.random.rand(k, n).astype(np.float32))) + matmul = op.MatMul(x, weight) + bias = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [n], np.random.rand(n).astype(np.float32))) + return op.Add(bias, matmul) +make_model_and_data(biased_matmul, np.random.rand(b, m, k).astype(np.float32), use_ort=True, ort_input_keys=["x"]) diff --git a/testdata/dnn/onnx/models/biased_matmul.onnx b/testdata/dnn/onnx/models/biased_matmul.onnx new file mode 100644 index 0000000000000000000000000000000000000000..3731274871a8e998865ac8c0f7b80d925b2386c5 GIT binary patch literal 4691 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 literal 0 HcmV?d00001 From 8b35bba28e1ccd2da902f6d334df8daf76d18c1f Mon Sep 17 00:00:00 2001 From: fengyuentau Date: Tue, 26 Mar 2024 15:05:25 +0800 Subject: [PATCH 2/3] add note about onnxscript producing incorrect results in eager mode --- testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py b/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py index 73dcda824..929f520c6 100644 --- a/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py +++ b/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py @@ -364,4 +364,6 @@ def biased_matmul(x: ost.FLOAT[b, m, k]) -> ost.FLOAT[b, m, n]: matmul = op.MatMul(x, weight) bias = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [n], np.random.rand(n).astype(np.float32))) return op.Add(bias, matmul) +# Use onnxruntime to get inference result because onnxscript produces incorrect result in eager mode. +# More details see https://github.com/microsoft/onnxscript/issues/1313. make_model_and_data(biased_matmul, np.random.rand(b, m, k).astype(np.float32), use_ort=True, ort_input_keys=["x"]) From 609e11b4cd61222c2fc75e95f19dbe3062cda223 Mon Sep 17 00:00:00 2001 From: fengyuentau Date: Wed, 27 Mar 2024 15:53:26 +0800 Subject: [PATCH 3/3] update script to put random numpy arrays outside of function --- .../generate_onnx_models_with_onnxscript.py | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py b/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py index 929f520c6..0b125ff95 100644 --- a/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py +++ b/testdata/dnn/onnx/generate_onnx_models_with_onnxscript.py @@ -6,7 +6,12 @@ from onnxscript import opset11 from onnxscript import opset13 -import onnxruntime as ort +############### +### CAUTION!!! +### Be sure to put constant numpy arrays out of @ost.script() decorated fucntion. +### Otherwise random values change each time eager mode is enter. +### See discussions in https://github.com/microsoft/onnxscript/issues/1313 +############### np.random.seed(0) @@ -15,13 +20,6 @@ def make_model_and_data(model, *args, **kwargs): # TODO: support multiple outputs output = model(*args) # eager mode - if "use_ort" in kwargs and kwargs["use_ort"]: - assert "ort_input_keys" in kwargs, "use_ort: input keys are required to use onnxruntime for inference" - ort_inf_sess = ort.InferenceSession(model.to_model_proto().SerializeToString(), providers=["CPUExecutionProvider"]) - inputs_dict = dict() - for k, v in zip(kwargs["ort_input_keys"], args): - inputs_dict[k] = v - output = ort_inf_sess.run([], inputs_dict)[0] # Save model model_proto = model.to_model_proto() @@ -357,13 +355,13 @@ def layer_norm_no_fusion(x: ost.FLOAT[n, c, h, w]) -> ost.FLOAT[n, c, h, w]: m = 32 n = 64 k = 16 +weight_data = np.random.rand(k, n).astype(np.float32) +bias_data = np.random.rand(n).astype(np.float32) @ost.script() def biased_matmul(x: ost.FLOAT[b, m, k]) -> ost.FLOAT[b, m, n]: - weight = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [k, n], np.random.rand(k, n).astype(np.float32))) + weight = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [k, n], weight_data)) matmul = op.MatMul(x, weight) - bias = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [n], np.random.rand(n).astype(np.float32))) + bias = op.Constant(value=onnx.helper.make_tensor("", onnx.TensorProto.FLOAT, [n], bias_data)) return op.Add(bias, matmul) -# Use onnxruntime to get inference result because onnxscript produces incorrect result in eager mode. -# More details see https://github.com/microsoft/onnxscript/issues/1313. make_model_and_data(biased_matmul, np.random.rand(b, m, k).astype(np.float32), use_ort=True, ort_input_keys=["x"])