【问题标题】:cupy convolve not found没有找到cupy卷积
【发布时间】:2020-09-04 13:08:11
【问题描述】:

我正在尝试让 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 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)] on win32
  • cuda 11.0.3 451.82
  • cuDNN 11.0 x64 v8.0.3.33
  • cuTENSOR 1.2.0

点:

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

我全新安装了 Python 和 cuda,...,但这并没有解决问题。 我现在不知道还可能缺少什么。据我了解是cupy,只是numpy在gpu上处理的,所以numpy的每个函数都应该在cupy中。

【问题讨论】:

  • 我可能已经发现了最新文档的问题,而我的 Cupy 版本是 7.8.0,其中没有提到 convolve。我看看能不能升级到那个。

标签: python python-3.x numpy cupy


【解决方案1】:

好像cupy 7.8.0不支持convolve,仅在8.0.0版本 所以我现在安装了当前的候选版本 cupy_cuda110-8.0.0rc1

pip install --pre -U cupy-cuda110

现在卷积工作正常

【讨论】:

  • 为了升级cupy版本,看来我还需要将我的cuda版本从10.1升级到11。但是如果我也使用tensorflow for gpu,那么我需要使用cuda 10.1当前它根据张量流工作。顺便说一句,您是否也在使用 tensorflow?
  • @JeffBoker 我没有使用tenserflow。但最新的 cupy 版本也可用于其他 cuda 版本,如 10.1 pypi.org/project/cupy-cuda101/#history
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-31
  • 2020-07-27
  • 1970-01-01
  • 2011-09-25
相关资源
最近更新 更多