diff --git a/tests/python/frontend/onnx/test_forward.py b/tests/python/frontend/onnx/test_forward.py index 5cc57c87e8fd..01039e7443cb 100644 --- a/tests/python/frontend/onnx/test_forward.py +++ b/tests/python/frontend/onnx/test_forward.py @@ -229,7 +229,9 @@ def verify_with_ort( ) -def quantize_and_verify_with_ort(onnx_model, input_names, input_shapes, target, dev): +def quantize_and_verify_with_ort( + onnx_model, input_names, input_shapes, target, dev, rtol=1e-5, atol=1e-5 +): from onnxruntime.quantization import CalibrationDataReader, QuantType, quantize_static input_arrays = [np.random.random(shape).astype("float32") for shape in input_shapes] @@ -258,7 +260,7 @@ def get_next(self): # opt_level=1 will cause error with qnn lowering model = onnx.load(model_quant) verify_with_ort_with_inputs( - model, input_arrays, opt_level=2, target=target, dev=dev, use_vm=True + model, input_arrays, opt_level=2, target=target, dev=dev, use_vm=True, rtol=rtol, atol=atol ) @@ -5969,7 +5971,11 @@ def verify_qlinearleakyrelu(inshape, kwargs): outputs=[helper.make_tensor_value_info("Y", TensorProto.FLOAT, list(in_array.shape))], ) model = helper.make_model(graph, producer_name="qlinearRelu_test") - quantize_and_verify_with_ort(model, ["X"], [in_array.shape], target, dev) + args = (model, ["X"], [in_array.shape], target, dev) + if dev == "cuda": + quantize_and_verify_with_ort(*args, rtol=1e-2, atol=1e-2) + else: + quantize_and_verify_with_ort(*args) verify_qlinearleakyrelu([2, 4, 5, 6], {"alpha": 0.25}) verify_qlinearleakyrelu([6, 5, 6, 7], {"alpha": 0.35})