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