1. 方案一

通过github上的原项目进行安装。

  • step1:下载项目源码
  • step2:执行下面两行代码即可
cd ./models/ops
sh ./make.sh

2. 方案二

我在使用方案一时报错:

error: command 'cuda-11.6/bin/nvcc' failed with exit status 1

搜索网上资料,这篇博客中说错误原因可能是cudagcc版本不匹配。

2.1 解决方法1

注:这个方法应该只能适配python3.7版本,最后我使用python3.8虽然能成功安装(conda list中有),但是import导入时会报错,推荐解决方法2。

不想再去折腾版本了,继续搜索有没有其他的办法,找到了这份参考资料,但是这里提到的使用下面这个pip命令安装的方式是不可行的。

pip install MultiScaleDeformableAttention

点击Download file,发现有预编译的whl文件,.whl 文件是 Python 的二进制分发格式,包含预编译的 Python 代码和其他资源文件,可以直接安装而无需编译。
在这里插入图片描述
但是直接使用下载好的whl文件进行安装会报错:

ERROR: MultiScaleDeformableAttention-0.1-none-any.whl is not a valid wheel filename.

这个错误是因为 .whl 文件名不符合 PEP 427 规范,一个有效的 .whl 文件名应该遵循以下格式:

{distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl

手动修改whl文件名后,使用pip命令进行安装:

pip install MultiScaleDeformableAttention-0.1-py3-none-any.whl

2.2 解决方法2

既然是cuda和gcc版本不匹配,那就修改gcc版本(或cuda版本),我这里修改了gcc的版本,相比于修改cuda版本比较方便。具体操作请看下面的文章。

  1. 修改gcc版本
# 安装g++ 7
sudo apt install gcc-7 g++-7
# 修改优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100 --slave /usr/bin/g++ g++ /usr/bin/g++-7 --slave /usr/bin/gcov gcov /usr/bin/gcov-7
# 切换版本
sudo update-alternatives --config gcc

修改完成后参照方案1进行操作即可安装成功。

  1. 修改cuda版本

参考文章

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐