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 (float 或 dict) – 相对容差。除了浮点值外,还可以提供一个字典,将数据类型映射到浮点值,以便按数据类型调整容差。如果字典包含键为
'default'
的字符串,其值将用作默认容差,以防任何数据类型键不匹配。err_msg (str) – 失败时打印的错误消息。
verbose (bool) – 如果为
True
,会将冲突的值附加到错误消息中。name (str) – 参数名称,其值是
numpy
或cupy
模块。type_check (bool) – 如果为
True
,也会检查数据类型的一致性。accept_error (bool, Exception 或 tuple of Exception) – 指定可接受的错误。当 NumPy 测试和 CuPy 测试都引发相同类型的错误,并且错误的类型由本参数指定时,将忽略这些错误,不予引发。如果为
True
,则所有错误类型都可接受。如果为False
,则任何错误都不可接受。sp_name (str 或 None) – 参数名称,其值是
scipy.sparse
或cupyx.scipy.sparse
模块。如果为None
,则不对这些模块提供任何参数。scipy_name (str 或 None) – 参数名称,其值是
scipy
或cupyx.scipy
模块。如果为None
,则不对这些模块提供任何参数。contiguous_check (bool) – 如果为
True
,也会检查连续性的一致性。
被装饰的测试 fixture 需要返回在
numpy
和cupy
情况下值接近的数组。例如,此测试用例检查numpy.zeros
和cupy.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