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