Как создать подкласс массива CuPy?
Для NumPy можно использовать
class A(np.ndarray): pass
a = np.random.rand(10, 10).view(A)
print(a) # OK
Но для Cupy следующая операция приводит к segfault:
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
спор сейчас.