leandron opened a new issue, #12567:
URL: https://github.com/apache/tvm/issues/12567

   While working to enable Integration tests in AArch64 with ONNX and Torch 
installed (which is currently a blind spot in our CI, see 
https://github.com/apache/tvm/issues/12529), I'm seeing 
`python.contrib.test_onnx.test_resize` failing with an accuracy error. 
According to some tests locally, the issue reproduces consistently in x86 and 
AArch64.
   
   I'm creating this issue so that we can investigate the numerical accuracy 
issue separately, but for now, I'm marking this test as and `xfail`.
   
   This is the error message I see:
   ```
   def test_resize():
           """Resize unit test."""
       
           def verify_resize(dshape, outsize, method, coord_trans, 
rounding_method, dtype="float32"):
               x = relay.var("x", relay.ty.TensorType(dshape, dtype))
               y = relay.image.resize2d(
                   x,
                   outsize,
                   None,
                   layout="NCHW",
                   method=method,
                   coordinate_transformation_mode=coord_trans,
                   rounding_method=rounding_method,
               )
               func = relay.Function([x], y)
               x_data = np.random.uniform(size=dshape).astype(dtype)
               verify_results(func, [x_data], "test_resize", rtol=1e-4, 
atol=1e-4)
       
           method = ["nearest_neighbor", "linear", "cubic"]
           coord_trans = ["half_pixel", "align_corners", "asymmetric"]
           rounding_method = ["round", "floor", "ceil"]
       
           isize = (1, 3, 480, 640)
       
           # Downsample
           osize = (240, 320)
           for i in method:
               for j in coord_trans:
                   for k in rounding_method:
                       if (i == "nearest_neighbor" and j == "align_corners") or 
(
                           i == "cubic" and j in ["half_pixel", "align_corners"]
                       ):
                           continue
                       verify_resize(isize, osize, method=i, coord_trans=j, 
rounding_method=k)
       
           # Upsample
           osize = (960, 1280)
           for i in method:
               for j in coord_trans:
                   for k in rounding_method:
                       if (i == "nearest_neighbor" and j == "align_corners") or 
(i == "cubic"):
                           continue
   >                   verify_resize(isize, osize, method=i, coord_trans=j, 
rounding_method=k)
   
   tests/python/contrib/test_onnx.py:700: 
   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ 
   tests/python/contrib/test_onnx.py:674: in verify_resize
       verify_results(func, [x_data], "test_resize", rtol=1e-4, atol=1e-4)
   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ 
   
   relay_func = fn (%x: Tensor[(1, 3, 480, 640), float32]) {
     image.resize2d(%x, size=[960, 1280], roi=[0f, 0f, 0f, 0f], 
method="nearest_neighbor", coordinate_transformation_mode="asymmetric")
   }
   indata = [array([[[[0.07992046, 0.10136255, 0.00943371, ..., 0.6083984 ,
             0.80598825, 0.8000824 ],
            [0.6850799...],
            [0.47949922, 0.5546733 , 0.77905625, ..., 0.5419391 ,
             0.09121019, 0.5444949 ]]]], dtype=float32)]
   test_name = 'test_resize', rtol = 0.0001, atol = 0.0001, is_dyn = False
   
       def verify_results(relay_func, indata, test_name, rtol=1e-7, atol=0, 
is_dyn=False):
           relay_results = run_relay(relay_func, indata, is_dyn)
           onnx_results = run_onnx(func_to_onnx(relay_func, test_name), indata)
       
           for relay_res, onnx_res in zip(relay_results, onnx_results):
   >           np.testing.assert_allclose(relay_res, onnx_res, rtol=rtol, 
atol=atol)
   E           AssertionError: 
   E           Not equal to tolerance rtol=0.0001, atol=0.0001
   E           
   E           Mismatched elements: 2760564 / 3686400 (74.9%)
   E           Max absolute difference: 0.99967563
   E           Max relative difference: 5434130.5
   E            x: array([[[[0.07992 , 0.07992 , 0.101363, ..., 0.805988, 
0.800082,
   E                     0.800082],
   E                    [0.07992 , 0.07992 , 0.101363, ..., 0.805988, 
0.800082,...
   E            y: array([[[[0.07992 , 0.101363, 0.101363, ..., 0.800082, 
0.800082,
   E                     0.800082],
   E                    [0.68508 , 0.172607, 0.172607, ..., 0.060676, 
0.060676,...
   
   tests/python/contrib/test_onnx.py:69: AssertionError
   ```
   
   cc @ashutosh-arm 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to