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' 作为其键,则在任何数据类型键不匹配的情况下,其值将用作默认容差。

  • atol (float or dict) – 绝对容差。除了浮点数值外,还可以提供一个字典作为 rtol

  • err_msg (str) – 在失败情况下要打印的错误信息。

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

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

  • type_check (bool) – 如果 True,还会检查 dtype 的一致性。

  • accept_error (bool, Exception or tuple of Exception) – 指定可接受的错误。当 NumPy 测试和 CuPy 测试都引发相同类型的错误,并且该错误的类型通过此参数指定时,这些错误将被忽略且不会引发。如果设置为 True,则所有错误类型都是可接受的。如果设置为 False,则不接受任何错误。

  • sp_name (str or None) – 参数名称,其值为 scipy.sparsecupyx.scipy.sparse 模块。如果为 None,则不为模块提供参数。

  • scipy_name (str or None) – 参数名称,其值为 scipycupyx.scipy 模块。如果为 None,则不为模块提供参数。

  • contiguous_check (bool) – 如果 True ,还会检查邻接的一致性。

装饰测试夹具需要返回在 numpy 情况和 cupy 情况下值接近的数组。例如,此测试用例检查 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