如何子类化 CuPy 数组?
Posted
技术标签:
【中文标题】如何子类化 CuPy 数组?【英文标题】:How to subclass a CuPy array? 【发布时间】:2019-02-25 01:49:19 【问题描述】:NumPy 可以使用
class A(np.ndarray): pass
a = np.random.rand(10, 10).view(A)
print(a) # OK
但是对于 Cupy,下面的操作会导致段错误:
class A(cp.ndarray): pass
a = cp.random.rand(10, 10).view(A)
print(a) # segfault
我浏览了文档,但几乎没有找到任何信息。这是预期的吗? 我正在使用 CuPy 5.2、Python 3.6.8 和 CUDA10。
【问题讨论】:
【参考方案1】:根据numpy.ndarray.view 的文档,它需要两个输入参数:dtype
和type
。如果dtype
参数是numpy.ndarray
的子类,则将其解释为type
参数。
另一方面,根据cupy.ndarray.view 的文档,它只需要一个输入参数:dtype
。我猜cupy.ndarray.view
现在不支持type
参数。
【讨论】:
以上是关于如何子类化 CuPy 数组?的主要内容,如果未能解决你的问题,请参考以下文章