cupy convolve не найден

#python #python-3.x #numpy #cupy

#python #python-3.x #numpy #cupy

Вопрос:

Я пытаюсь заставить cupy использовать convolve из документа здесьhttps://docs.cupy.dev/en/latest/reference/generated/cupy.convolve.html

 >>> import cupy as cp
>>> b = cp.array([0,0,0,1,0,0,0,1])
>>> cp.convolve(b, cp.ones(3), 'same') / 3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'cupy' has no attribute 'convolve'
  

Итак, свертка на numpy, похоже, работает, но не с cupy.

 >>> import numpy as np
>>> a = np.array([0,0,0,1,0,0,0,1])
>>> np.convolve(a, np.ones(3), 'same') / 3
array([0.        , 0.        , 0.33333333, 0.33333333, 0.33333333,
       0.        , 0.33333333, 0.33333333])
  

Хотя базовые функции, такие как add, работают с cupy.

 >>> cp.add(b, b)
array([0, 0, 0, 2, 0, 0, 0, 2], dtype=int32)
  

Настройка:

  • Windows 10
  • Python 3.8.5 (теги / v3.8.5:580fbb0, июль 20 2020, 15:57:54) [ MSC v.1924 64 бит (AMD64)] на win32
  • cuda 11.0.3 451.82
  • cuDNN 11.0 x64 v8.0.3.33
  • cuTENSOR 1.2.0

pip:

  • numpy-1.19.1
  • cupy-cuda110-7.8.0
  • optuna-2.0.0

Я выполнил чистую новую установку Python и cuda, …, но это не решило проблему. Сейчас я понятия не имею, чего еще может не хватать. Насколько я понял, это cupy, просто numpy обрабатывается на графическом процессоре, поэтому каждая функция numpy должна быть в cupy.

Комментарии:

1. Возможно, я обнаружил проблему, документы для последней версии, и моя версия cupy — 7.8.0, где convolve не упоминается. Я посмотрю, смогу ли я перейти на это.

Ответ №1:

Как кажется, cupy 7.8.0 не поддерживает convolve, только в версии 8.0.0, поэтому я теперь установил текущий релиз-кандидат cupy_cuda110-8.0.0rc1

 pip install --pre -U cupy-cuda110
  

Теперь свертка работает нормально

Комментарии:

1. Похоже, мне также нужно обновить версию cuda с 10.1 до 11, чтобы обновить версию cupy. Но если я также использую tensorflow для графического процессора, то в настоящее время мне нужно использовать cuda 10.1, чтобы он работал в соответствии с tensorflow. Случайно, вы вообще не используете tensorflow?

2. @JeffBoker Я не использую tenserflow. Но новейшие версии cupy также доступны для других версий cuda, таких как 10.1 pypi.org/project/cupy-cuda101/#history