pyinn安装
在使用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
拆解为:
1.手动下载pyinn包并解压
(这时候文件夹里往往有一个setup.py文件,但是有些时候并不能简单的python setup.py)
1.1 对setup.py进行修改
原文件下载的包:
install_requires=[
'torch',
'cupy',
# 'scikit-cuda',
]
因为我电脑使用的cuda11.1.0,所以cupy需要针对cuda版本进行下载安装,需要修改cupy版本,改为:
install_requires=[
'torch',
'cupy-cuda111',
# 'scikit-cuda',
]
2.在下载的文件夹下执行 :python setup.py sdist
3.然后会多出一个dist的文件夹,打开文件夹便可以看到一个打包好的你需要安装的项目xxx.tar.gz
4.然后再 pip install xxx.tar.gz ,到此安装完成
后续
安装成功后调用pyinn时也会报错:
import pyinn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/mol/.local/lib/python3.6/site-packages/pyinn/__init__.py", line 1, in <module>
from .ncrelu import ncrelu
File "/home/mol/.local/lib/python3.6/site-packages/pyinn/ncrelu.py", line 2, in <module>
from pyinn.utils import Stream, Dtype, load_kernel
File "/home/mol/.local/lib/python3.6/site-packages/pyinn/utils.py", line 17, in <module>
@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