From 981a714f0d2072f4f6a4e7c5db137daeaddf2f9d Mon Sep 17 00:00:00 2001 From: xadupre Date: Wed, 19 Feb 2025 16:10:22 +0100 Subject: [PATCH] Investigate crash due to empty size --- .../test/python/onnxruntime_test_sklearn.py | 24 ++++++++++++++++++ .../testdata/SklearnKNNImputer21.model.onnx | Bin 0 -> 14731 bytes 2 files changed, 24 insertions(+) create mode 100644 onnxruntime/test/python/onnxruntime_test_sklearn.py create mode 100644 onnxruntime/test/testdata/SklearnKNNImputer21.model.onnx diff --git a/onnxruntime/test/python/onnxruntime_test_sklearn.py b/onnxruntime/test/python/onnxruntime_test_sklearn.py new file mode 100644 index 0000000000000..be5cf96b32e2f --- /dev/null +++ b/onnxruntime/test/python/onnxruntime_test_sklearn.py @@ -0,0 +1,24 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. +# pylint: disable=C0116,W0212,R1720,C0103,C0114 + +import unittest + +import numpy as np +from helper import get_name + +import onnxruntime + + +class TestInferenceSessionSklearn(unittest.TestCase): + def test_empty_sizes(self): + # The model is valid assuming operators allow empty inputs. + model = get_name("SklearnKNNImputer21.model.onnx") + sess = onnxruntime.InferenceSession(model, providers=["CPUExecutionProvider"]) + feeds = dict(input=np.array([[1.3, 2.4, np.nan, 1], [-1.3, np.nan, 3.1, np.nan]], dtype=np.float32)) + got = sess.run(None, feeds) + self.assertFalse(np.any(np.isnan(got[0]))) + + +if __name__ == "__main__": + unittest.main(verbosity=2) diff --git a/onnxruntime/test/testdata/SklearnKNNImputer21.model.onnx b/onnxruntime/test/testdata/SklearnKNNImputer21.model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..9e2df195295b6e48081e5b581ed035d68d6a526d GIT binary patch literal 14731 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 literal 0 HcmV?d00001