ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘

这篇具有很好参考价值的文章主要介绍了ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 在实现DINO Detection方法时,我们可能会遇到以上问题。因为在DeformableAttention模块,为了加速,需要自己去编译这个模块。

如果你的环境变量中能够找到cuda路径,使用正确的torch版本和cuda版本的话,这个问题很容易解决。(ps:一般情况下,cuda会安装在/usr/local文件夹下,但是很多情况下,虽然cuda可以使用,但是你可能就是无法找到cuda路径)

但是,如果你在一个集群中,可能找不到cuda路径,那么编译起来就困难多了。

# 找cuda环境
nvcc -V

whereis cuda

我在集群中来编译这个模块,编译源文件:https://github.com/IDEA-Research/DINO/tree/main/models/dino/ops

首先想到的是,通过在非集群服务器中,配置与集群服务器相同的python环境和cuda环境;

编译完成之后,把生成的库文件拷贝过去(路径:./envs/python39/lib/python3.9/site-packages):

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

把生成的info文件也拷贝过去: 

 ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

这时,通过conda list,可以看到已经安装了这个库:

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

 但是,呀,但是,实际使用时:

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

 那么接下来,尝试用easy_install egg文件来安装,因为在另一个服务器已经生成了这个文件(在dist文件夹下),拷贝过去,然后安装:

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

easy_install MultiScaleDeformableAttention-1.0-py3.9-linux-x86_64.egg

安装的时候遇到问题:

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

 经过研究,这是setuptools版本的问题,升级到最新版(67),当前问题解决,出现另一个问题:

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

这个问题查了半天,无法解决,仔细想还是版本问题,所以就盲试更改版本,发现以下版本解决问题:

pip install setuptools==40

再次运行安装,终于安装成功:

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

 但是,在实际运行时确发现另一个bug:

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

 这个库在网上没有找到,所以想到原来我们用来编译的服务器上应该有,搜索之后找到了,然后将它放在了与egg文件相同的目录下,即./envs/python39/lib/python3.9/site-packages对应的文件夹下,但是测试发现系统并没有直接去这个目录下找这个库文件,还是提示找不到。思考是,在源服务器编译时,这个依赖库的路径写死了,写到了so中,还是无法解决问题。

-------------------------------------------------------------------

痛定思痛,决定看看没有root权限,来安装cuda,根据自己torch安装的版本,确定cuda版本,去官网下载run file,然后安装过程中,不选择驱动安装,设置自己的路径(包括cuda-toolkit路径和lib路径),进行安装。可参考:https://blog.csdn.net/u013602059/article/details/121225915

这样cuda是可以安装好的。之后,需要写run.sh文件:

export CUDA_HOME="/xx/./cuda/"
export TORCH_CUDA_ARCH_LIST="8.0"
cd ./models/dino/ops
python setup.py install

这里需要注意:TORCH_CUDA_ARCH_LIST的值与算力有关,TITAN服务器,可以设置8.0,如果时Tesla V100,应该是7.0,否则即使能够编译成功,会报如下错误:

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

 并且,训练过程完全无效。。。

这里提供算力查询网址:https://developer.nvidia.com/cuda-gpus#compute

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

 ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

 ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

按照自己的服务器GPU硬件条件 去设置就行。

再然后,sbatch run.sh,提交运行,发现能够正确安装,可喜可贺。

ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘,pytorch,cuda,python,深度学习,pytorch

并且,最关键的是,自己的代码能够跑起来了。

总结:整个过程,虽然前面浪费了很多时间,但是还是了解了很多工具。 遇到问题一步一步解决。文章来源地址https://www.toymoban.com/news/detail-650257.html

到了这里,关于ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ModuleNotFoundError: No module named ‘django‘

    问题描述: 在pycharm中启动Django项目时,显示ModuleNotFoundError: No module named \\\'django\\\' , 但是在setting中检查存在django     解决办法: (1)  首先检查Django和python版本是否匹配       (2)  由于我使用的是conda环境,因此需要激活,可通过Anaconda prompt进行激活,或者在pycharm中激活,参考

    2024年02月12日
    浏览(32)
  • ModuleNotFoundError: No module named ‘selenium

    下面是我学习时的错误,在此文章记录一下,方便日后查找,以下解决方案都来源于网络。 问题:当jupyter出现ModuleNotFoundError: No module named \\\'selenium问题时的解决方案:  解决方案: 1、在cmd运行pip install selenium 2、在实行解决方案一之后出现的问题:  以上说我已安装了seleni

    2024年01月25日
    浏览(32)
  • ModuleNotFoundError: No module named ‘SwissArmyTransformer‘

    小问题,直接pip install 但是,安装之后却还是提示,屏幕上依然标红 ModuleNotFoundError: No module named \\\'SwissArmyTransformer\\\' 查找环境目录发现, 这是因为新版的SwissArmyTransformer中,目录改为了sat,在引用时候需要对应改为sat。

    2024年02月02日
    浏览(30)
  • ModuleNotFoundError: No module named ‘mysql‘

    使用 sqlalchemy连接数据库 时提示: 解决方法CMD命令安装:

    2024年02月12日
    浏览(26)
  • ModuleNotFoundError: No module named ‘docx‘

    总结:关掉科学上网,在pycharm设置中装python-docx 报错: ModuleNotFoundError: No module named \\\'docx\\\' pip install docx 后报错 原因: 导错包了,不是docx而是python-docx 解决: 卸载安装错的 docx 安装正确的包 python-docx 仍然无法安装 pip换源 上面是在终端敲的命令,装过之后仍然显示No module 换

    2024年02月11日
    浏览(33)
  • 【报错】ModuleNotFoundError: No module named ‘websocket‘

    1 报错 ModuleNotFoundError: No module named \\\'websocket\\\' 2 解决方法 pip install websocket   1 报错 AttributeError: module \\\'websocket\\\' has no attribute \\\'enableTrace\\\' 2 分析 一般是由于websocket的依赖包没有安装造成的。websocket.enableTrace()方法是在websocket-client库中,所以安装该库即可解决问题。 3 解决方法 pip

    2024年02月09日
    浏览(31)
  • 解决:ModuleNotFoundError: No module named ‘pymysql’

    在使用之前的代码时,报错: Traceback (most recent call last): File “xxx”, line xx, in import pymysql ModuleNotFoundError: No module named ‘pymysql’ 主要报错信息内容翻译如下所示: 翻译: 经过查阅资料,发现是这个错误通常是由于缺少pymysql的依赖库,就会出现这样的提示。 小伙伴们按下面

    2024年02月19日
    浏览(47)
  • 解决ModuleNotFoundError: No module named ‘paddle‘

    安装百度的PaddlePaddle,遇到ModuleNotFoundError: No module named ‘paddle’ 错误,记录下解决过程。 安装完PaddlePaddle后,再Python解释器中运行如下语句 提示ModuleNotFoundError: No module named ‘paddle’ 网上说重新安装PaddlePaddle就可以了 CPU版 GPU版 可自己的重新安装后,还是出现原来的提示。

    2024年02月11日
    浏览(41)
  • 解决:ModuleNotFoundError: No module named ‘paddle‘

      错误显示: 原因:      环境中没有‘paddle’的python模块,但是您在尝试导入 解决方法: 1.普通方式安装: 2.镜像源安装  补充:常用的镜像源

    2024年03月09日
    浏览(35)
  • ModuleNotFoundError: No module named ‘_lzma‘

    系统:centos7 python:3.6.4 部署完python后将我们在windows环境中的scrapy文件传入我们的centos中后进行运行报错: 错误如下: 1、问题可能是没有下载lzma库,导致的 2、还有可能是导入错误原因导致的 这个时候我们仔细观察报错,/usr/local/lib/python3.6/lzma.py,我们找到这个文件,然后

    2024年02月15日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包