ModuleNotFoundError: No module named ‘Multiscaledeformableattention‘

news2024/11/25 19:32:10

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

如果你的环境变量中能够找到cuda路径,使用正确的torch版本和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):

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

 

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

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

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

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

安装的时候遇到问题:

 经过研究,这是setuptools版本的问题,升级到最新版(67),出现问题:

 

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

pip install setuptools==40

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

 运行发现另一个bug:

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

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

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

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

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

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

总结:整个过程,虽然前面浪费了很多时间,但是还是了解了很多工具。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/519492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第三十九天 | 不同路径(挺简单的)

62.不同路径 文档讲解:代码随想录 (programmercarl.com) 视频讲解:动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili 状态:能直接做出来。 思路 机器人从(1 , 1) 位置出发,到(m, n)终…

对抗训练方法:保卫人工智能的盾牌

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

【纳什博弈、ADMM】基于纳什博弈和交替方向乘子法的多微网主体能源共享研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

ch07-Pytorch的训练技巧

ch07-Pytorch的训练技巧 0.引言1.模型保存与加载1.1.序列化与反序列化1.2.PyTorch 中的模型保存与加载1.3.模型的断点续训练 2.模型 Finetune2.1.Transfer Learning & Model Finetune2.2.PyTorch中的Finetune 3.使用 GPU 训练模型3.1.CPU与GPU3.2.数据迁移至GPU3.3. 多 GPU…

mac下安装cnpm淘宝镜像

在mac安装cnpm时,输入npm install -g cnpm -registryhttps://registry.npm.taobao.org 报错: npm ERR! code EACCES npm ERR! syscall mkdir npm ERR! path /usr/local/lib/node_modules/cnpm npm ERR! errno -13 npm ERR! Error: EACCES: permission de…

单细胞 | label transfer with Seurat4(未知细胞映射到注释好的细胞图谱)

场景:把新的细胞比对到已经注释过的细胞集合上,获取映射后的细胞标签,UMP坐标。 准备: 一个分析好的单细胞图谱数据集,作为reference数据集。一个新的单细胞counts矩阵,记为 query数据集。 主要分为两个步…

在浏览器从输入URL到页面加载完成都经历了什么/一个完整的URL解析过程详细介绍

一、简述在浏览器从输入URL到页面加载完成都经历了什么 浏览器地址栏输入url地址,首先要在客户端上进行url解析 浏览器会首先查看自身的缓存,如果浏览器缓存中有对应的解析记录,直接返回结果 如果浏览器没有缓存,电脑会查看本地操…

Selenium+Unittest自动化测试框架实战(框架源码都给你)

目录 前言 项目框架 首先管理时间 !/usr/bin/env python3 -- coding:utf-8 -- 配置文件 conf.py config.ini# 读取配置文件 记录操作日志 简单理解POM模型 管理页面元素 封装Selenium基类 创建页面对象 熟悉unittest测试框架 编写测试用例 执行用例 生成测试报…

qemu-ARM篇——ARM 栈帧(一)

ARM 栈帧 本系列均已 corter-A7(armv7-a) 为例 在 ARM 中,通常为满减栈(Full Descending FD), 也就是说,堆栈指针指向堆栈内存中最后一个填充的位置,并且随着每个新数据项被压入堆栈而递减。 栈的本质 要理解栈的本…

前端CSS学习(三)

1、盒子模型 盒子的概念1、页面中的每一个标签,都可看做是一 个“盒子” ,通过盒子的视角更方便的进行布局2、浏览器在渲染 (显示)网页时,会将网页中的元素看做是一个个的矩形区域,我们也形象的称之为盒子CSS中规定每个盒子分别由…

BESV博世蔚发布2023全新款折叠e-bike —— F3,在中国自行车展会上大放异彩

BESV博世蔚身为跨界智慧出行的专家,今年在国内最大规模的中国国际自行车展上发布了其最新的e-bike折叠车款---VOTANI F3。拥有纯正荷兰血统的VOTANI系列车款,在设计外观上沿袭了欧风的极简主义和时尚设计,并搭配上折叠系统更易于携带和收纳。…

AnyStock JS Crack,AnyStock JS功能

AnyStock JS Crack,AnyStock JS功能 添加了新的技术指标-除了已经支持的几十个指标外,股票图表现在还提供了三个新的开箱即用技术指标: Aroon振荡器-通过从Aroon Up中减去Aroon Down,可以很容易地测量趋势的强度。 加权移动平均线(WMA)-通过更…

D-遗迹探险

牛客小白月赛 72 D 题目链接 链接:https://ac.nowcoder.com/acm/contest/56825/D 来源:牛客网 示例1 输入 3 3 1 2 3 4 5 6 7 8 9 2 2 1 1 3 3 3 1 1 1 3 3 1输出 58 41题解: 如果先不考虑传送门,这题就是一道简单dp 设状态 …

【后端随笔】mysql操作语句记录

sql语句不区分大小写 show bases; --号注释 /**/多行注释 DDL定义 DML删改 DQL查询 DCL权限控制语言 1、DDL操作数据库 (1)查询 SHOW DATABASES; (2)创建 CREATE DATABASES;//创建数据库 CREATE DATABASES IF NOT EXISTS 数据库名称&#xff…

stata学习笔记①stata基础介绍

文章目录 一、为什么要学stata二、软件基本解释1.软件界面2.导入示例数据3.认识几个重要的功能符号 三、数据的基本观测四、统计性描述1.codebook 数据字典使用2.summarize 五、图像初步探索1.histogram 直方图2.graph box /hbox 箱线图3.vioplot小提琴图 一、为什么要学stata …

JavaWeb:过滤器 Filter、监听器 Listener

文章目录 JavaWeb - 04一、Filter1. 概述2. 实现步骤3. 运行结果 二、Filter 应用:实现权限拦截1. 登录步骤2. 添加的过滤器部分3. 运行结果4. 总结 三、监听器注意: JavaWeb - 04 一、Filter 1. 概述 Filter:过滤器,可以用来过…

有用的知识又增加了:为何无法编译某些  WWDC 官方视频中的代码?

概览 作为 Apple 开发者而言,每期 WWDC 官方视频无疑是我们日常必看的内容。 不过,小伙伴们是否发现视频中有些示例代码在我们自己测试时却无法编译这一尴尬的情况呢? 在本篇博文中,我们将通过一则非常简单的示例来向大家展示为…

【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化

【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化 一、模型介绍(一)引言(二)符号定义(三)目标函数(四)约束条件4.1到达乘客数量4.2乘客进站限制4.3乘客总数量&#x…

Kyligence Zen产品体验-从人找数据到数据找人

目录 前言: 一、什么是Kyligence Zen? 1、个人总结 2、官方简介 二、1分钟打开新世界大门 个人总结: 1、注册 2、验证登录 三、上手初体验 1、快速上手(入门) 2、定制化应用 四、实战体验 综述: 1、卡…