在使用convcrf【https://github.com/MarvinTeichmann/ConvCRF】包的时候需要依赖pyinn【https://github.com/szagoruyko/pyinn】这个包,在pyinn安装是总是出现cupy安装问题,记录一下如解决:
首先问题就是找不到合适的cupy版本,但是我们可以自己手动安装成功,但是安装版本和pyinn的setup.py中不一致,所以一直有错误。而且会出现pyinn包无法下载的问题。
针对上面问题,我们将原网站安装命令进行拆解,原始命令:pip install git+https://github.com/szagoruyko/pyinn.git@master
拆解为:
(这时候文件夹里往往有一个setup.py文件,但是有些时候并不能简单的python setup.py)
原文件下载的包:
install_requires=[
'torch',
'cupy',
# 'scikit-cuda',
]
因为我电脑使用的cuda11.1.0,所以cupy需要针对cuda版本进行下载安装,需要修改cupy版本,改为:
install_requires=[
'torch',
'cupy-cuda111',
# 'scikit-cuda',
]
安装成功后调用pyinn时也会报错:
import pyinn
Traceback (most recent call last):
File ">", line 1, in >
File "/home/mol/.local/lib/python3.6/site-packages/pyinn/__init__.py", line 1, in >
from .ncrelu import ncrelu
File "/home/mol/.local/lib/python3.6/site-packages/pyinn/ncrelu.py", line 2, in >
from pyinn.utils import Stream, Dtype, load_kernel
File "/home/mol/.local/lib/python3.6/site-packages/pyinn/utils.py", line 17, in >
@cupy.util.memoize(for_each_device=True)
AttributeError: module 'cupy' has no attribute 'util'
解决办法:https://blog.csdn.net/Zhangrx _/article/details/115037500
由于pytorch版本升级,cupy更新后没有了util属性,因此将代码中的
@cupy.util.memoize(for_each_device=True)
改为:
@cupy.memoize(for_each_device=True)
代码所在位置就是报错中提醒的/home/mol/.local/lib/python3.6/site-packages/pyinn/utils.py