cupy.testing.numpy_cupy_allclose#

cupy.testing.numpy_cupy_allclose(rtol=1e-07, atol=0, err_msg='', verbose=True, name='xp', type_check=True, accept_error=False, sp_name=None, scipy_name=None, contiguous_check=True, *, _check_sparse_format=True)[来源]#

装饰器,用于检查 NumPy 和 CuPy 的结果是否接近。

参数:
  • rtol (floatdict) – 相对容差。除了浮点值外,还可以提供一个字典,将数据类型映射到浮点值,以便按数据类型调整容差。如果字典包含键为 'default' 的字符串,其值将用作默认容差,以防任何数据类型键不匹配。

  • atol (floatdict) – 绝对容差。除了浮点值外,还可以提供一个字典,类似于 rtol

  • err_msg (str) – 失败时打印的错误消息。

  • verbose (bool) – 如果为 True,会将冲突的值附加到错误消息中。

  • name (str) – 参数名称,其值是 numpycupy 模块。

  • type_check (bool) – 如果为 True,也会检查数据类型的一致性。

  • accept_error (bool, Exceptiontuple of Exception) – 指定可接受的错误。当 NumPy 测试和 CuPy 测试都引发相同类型的错误,并且错误的类型由本参数指定时,将忽略这些错误,不予引发。如果为 True,则所有错误类型都可接受。如果为 False,则任何错误都不可接受。

  • sp_name (strNone) – 参数名称,其值是 scipy.sparsecupyx.scipy.sparse 模块。如果为 None,则不对这些模块提供任何参数。

  • scipy_name (strNone) – 参数名称,其值是 scipycupyx.scipy 模块。如果为 None,则不对这些模块提供任何参数。

  • contiguous_check (bool) – 如果为 True,也会检查连续性的一致性。

被装饰的测试 fixture 需要返回在 numpycupy 情况下值接近的数组。例如,此测试用例检查 numpy.zeroscupy.zeros 应返回相同的值。

>>> import unittest
>>> from cupy import testing
>>> class TestFoo(unittest.TestCase):
...
...     @testing.numpy_cupy_allclose()
...     def test_foo(self, xp):
...         # ...
...         # Prepare data with xp
...         # ...
...
...         xp_result = xp.zeros(10)
...         return xp_result