win11配置Mask DINO小白踩坑记录

win11配置Mask DINO踩坑记录

  • 1 准备工作
  • 2 创建python环境和安装detectron2
    • 2.1 安装前提
    • 2.2 安装流程
      • 2.2.1 cl.exe的错误
      • 2.2.2 SetuptoolsDeprecationWarning的错误
  • 3 MaskDINO运行
    • 3.1 运行demo

前情提要:需要复现Mask DINO,但是实验室没有Linux的电脑,在Windows上复现的时候遇到了 No moduld name MultiScaleDeformableAttention,然后看博客说在Windows上配置很麻烦,建议去Linux,但是虚拟机没办法用GPU,想到了三个方法:1、用WSL2来运行;2、在Windows上解决这个困难;3、装双系统。
我首先试了方法1,碰到了一开始的问题,而且也比较麻烦,所以干脆进行了2,网上一些方法写的比较简略,但是我实际运行过程中碰到了很多问题,所以记录一下。
PS:如果是已经conda create一个环境了,建议查看版本是否正确,如果是直接在项目下运行了pip install -r requirement.txt,就重头开始

参考:Mask DINO环境配置
参考:win10系统配置Mask DINO经验总结
参考:Detectron2在Windows上的三部曲——安装

1 准备工作

名称版本号
cuda11.3
cudnncuda11对应最新版即可
pytorch1.10.1
torchvision0.11.2
torchaudio0.10.1

2 创建python环境和安装detectron2


conda create -n env_name python=3.9
conda activate env_name
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge#安装detectron2
git clone https://github.com/facebookresearch/detectron2.git
python -m pip install -e detectron2

如果conda安装慢,记得换源
安装detectron2开始出问题了

2.1 安装前提

需要安装Visual Studio,VS的版本一定要version<=2019,之前安装的VS2022死活安不上。
并且一定要把原来的VS2022删掉,否则会报错,安装了VS2019需要配置cl.exe的环境变量,请看2.2.1

2.2 安装流程

git clone https://github.com/facebookresearch/detectron2.git

Detectron2前将fvcore安装上

pip install fvcore
python setup.py install

成功安装结果:
在这里插入图片描述

2.2.1 cl.exe的错误

至此安装完成detectron2,我一开始没有安装,所以报错'cl.exe' is not recognized as an internal or external command
这是因为VS的cl.exe这个编译器未被加入到环境变量中,可以“编辑环境变量-环境变量-系统变量-PATH“, 添加路径**“path\to\vs2019\community\vc\tools\msvc\14.13.26128\bin\hostx64\x64"** 大概是这个路径,自行去找自己的路径。(VS2022是没有这个路径的)

安装完detectron2,再继续安装mask dino一开始遇到的问题都解决了

2.2.2 SetuptoolsDeprecationWarning的错误

错误内容:
SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ********************************************************************************

Please avoid running setup.py directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
**解决:我的原因是setuptools版本太高
首先使用以下命令查看setuptools版本信息

conda list

发现setuptools版本大于60,可能因为版本过高,算法使用的安装方式已经被弃用,选择重新安装小于60的版本,解决了此问题。

pip install setuptools==58

**

3 MaskDINO运行

#克隆maskdino库
git clone https://github.com/IDEA-Research/MaskDINO.git
cd ./MaskDINO
pip install -r requirements.txt

注意是requirements.txt,有无s
成功结果:
在这里插入图片描述
再接下来

cd maskdino/modeling/pixel_decoder/ops
python setup.py build install

(这里碰到了没有删除vs2022遇到的错,卸载了就没有报错了)
运行的时候出现了一大串类似于报错的信息,但是等待就好了
成功结果:
在这里插入图片描述

3.1 运行demo

退回到根目录 \MaskDINO-main,在根目录创建img和weight文件夹,并在img中放入测试图片,weight中放入权重:自行下载

python .\demo\demo.py --config-file .\configs\coco\instance-segmentation\maskdino_R50_bs16_50ep_3s.yaml --input .\img\1.jpg --output .\img\2.jpg --opts MODEL.WEIGHTS .\weight\maskdino_r50_50ep_300q_hid1024_3sd1_instance_maskenhanced_mask46.1ap_box51.5ap.pth

至此,结束!

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

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

相关文章

keycloak18.0.0==本地源码启动

github下载源码&#xff0c; 版本18.0.0 java和maven的版本如下 E:\keycloak-18.0.0>java -version java version "21.0.1" 2023-10-17 LTS Java(TM) SE Runtime Environment (build 21.0.112-LTS-29) Java HotSpot(TM) 64-Bit Server VM (build 21.0.112-LTS-…

【网站项目】308学生档案管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

Spring Webflux 详解

目录 0、组件对比 1、WebFlux 1、引入 2、Reactor Core 1、HttpHandler、HttpServer 3、DispatcherHandler 1、请求处理流程 4、注解开发 1、目标方法传参 2.返回值写法 5、文件上传 6、错误处理 7、RequestContext 8、自定义Flux配置 9、Filter WebFlux&am…

Linux 之二:CentOS7 的 IP 常用命令和配置及 xshell 基本使用方法

1. 进入虚拟机 点击右键---进入终端--输入 ip adrr 或 ifconfig 查看ip地址 下面输入命令 ifconfig&#xff08;注意&#xff1a;不是 ipconfig &#xff09; 或 ip addr 来查看当前系统 IP 查看到IP 后&#xff0c;比如&#xff1a;上面是 192.168.184.137 1.1 IP 常用命令…

LeetCode142题:环形链表II(python3)

代码思路&#xff1a; 双指针的第一次相遇&#xff1a; 设两指针 fast&#xff0c;slow 指向链表头部 head 。 令 fast 每轮走 2 步&#xff0c;slow 每轮走 1 步。 fast 指针走过链表末端&#xff0c;说明链表无环&#xff0c;此时直接返回 null。 如果链表存在环&#xff0c;…

web学习笔记(二十六)

目录 1.JS执行队列 1.1JS是单线程 1.2Web Worker 1.3同步和异步 1.4JS执行机制 2.location对象 2.1什么是location对象 2.2url包含的信息 2.3location对象属性 2.4location对象的方法 3.navigator对象和history对象 3.1navigator对象 3.2history对象 1.JS执行队…

初识JS

目录 javascript的作用: 浏览器如何执行JS代码&#xff1a; JS的三部分组成&#xff1a; ECMAScript: DOM: BOM: JS的三种书写导入方式&#xff1a; JS注释&#xff1a; JS的输入输出语句&#xff1a; JS变量,数据&#xff1a; 变量的使用&#xff1a; 声明变量&…

嵌入式学习第二十五天!(网络的概念)

网络&#xff1a; 可以用来&#xff1a;数据传输、数据共享 1. 网络协议模型&#xff1a; 1. OSI协议模型&#xff1a; 应用层实际收发的数据表示层发送的数据是否加密会话层是否建立会话连接传输层数据传输的方式&#xff08;数据包&#xff0c;流式&#xff09;网络层数据的…

Vue+SpringBoot打造医院门诊预约挂号系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 功能性需求2.1.1 数据中心模块2.1.2 科室医生档案模块2.1.3 预约挂号模块2.1.4 医院时政模块 2.2 可行性分析2.2.1 可靠性2.2.2 易用性2.2.3 维护性 三、数据库设计3.1 用户表3.2 科室档案表3.3 医生档案表3.4 医生放号…

SpringCloud Alibaba 学习

一&#xff1a;SpringCloud Alibaba介绍 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服 务的必需组件&#xff0c;方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 依托 Spring Cloud Alibaba&…

JavaScript实现点击鼠标弹钢琴的效果

思路&#xff1a; 图片设置宽900px&#xff0c;找到鼠标按下时的x坐标和img距离body的x坐标&#xff0c;两个值相减&#xff0c;然后除100取整&#xff0c;赋值给a&#xff0c;通过判断a的值来确定放出那个音乐。 完整代码&#xff1a; <!DOCTYPE html> <html lan…

MQTT连接阿里云物联网上报物模型数据

目录 1. 创建产品&#xff08;物联网平台 -> 产品 -> 创建产品&#xff09; 2. 为产品添加设备 3. 添加物模型 4. mqtt.fx连接测试 5. 调试物模型 6. 使用mqtt.fx上报温度数据 1. 创建产品&#xff08;物联网平台 -> 产品 -> 创建产品&#xff09; 我这里再新…

Java开发快速学习,Java面试题汇总

前言 面试时间将近两个小时&#xff08;期间等待二面面试官来面我的时候等了半个多小时&#xff09;面试官问的东西很多&#xff0c;还挖了好几个坑&#xff0c;一个技术点套着一个技术点的问&#xff0c;一定要做好万全的准备。问了一些基本层面上的技术点都答出来了&#xf…

Vue基础练习 组件之间数据传递

父→子&#xff1a;在子组件注册时写入props&#xff0c;并指定验证要求&#xff0c;父组件时使用v-bind绑定传入数据 //父组件&#xff1a;<Menu class"Menu" :MenuList"MenuList" :showUnderLine"showUnderLine"></Menu>data(){r…

Java项目:39 springboot007大学生租房平台的设计与实现

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 系统有管理员、房东和用户 【主要功能】 1、后台&#xff1a;房源管理、信息审批管理、订单信息管理、房东管理、用户管理 2、前台&#xff1…

学习总结——JMeter做http接口功能测试

JMeter对各种类型接口的测试 默认做接口测试前&#xff0c;已经给出明确的接口文档&#xff08;如&#xff0c;http://test.nnzhp.cn/wiki/index.php?doc-view-59&#xff09;&#xff1b;本地配好了JMeter 3.x的运行环境&#xff1b; 打开JMeter&#xff0c;添加一个线程组…

TCP和UDP可以使用同一个端口号吗?

TCP和UDP可以使用同一个端口号吗&#xff1f; 首先说答案&#xff1a;可以。怎么理解呢&#xff1f; 我想这个问题要从计算机网络通信谈起&#xff0c;学过计算机网络的同学&#xff0c;可能都还记得7层或者4层网络模型&#xff0c;TCP/UDP属于其中的传输层协议&#xff0c;在…

浅析扩散模型与图像生成【应用篇】(七)——Prompt-to-Prpmpt

7. Prompt-to-Prompt Image Editing with Cross Attention Control 本文提出一种利用交叉注意力机制实现文本驱动的图像编辑方法&#xff0c;可以对生成图像中的对象进行替换&#xff0c;整体改变图像的风格&#xff0c;或改变某个词对生成图像的影响程度&#xff0c;如下图所示…

《程序员的职业迷宫:选择你的职业赛道》

程序员如何选择职业赛道&#xff1f; 大家好&#xff0c;我是小明&#xff0c;一名在编程迷宫中探索的程序员。作为这个庞大迷宫的探险者&#xff0c;我深知选择适合自己的职业赛道有多么重要。今天&#xff0c;我将分享一些关于如何选择职业赛道的心得&#xff0c;希望能够帮…

网络编程作业day6

数据库操作的增、删、改完成 #include <myhead.h>//查询的回调函数 int callback(void* data,int count,char** argv, char** columnName) {//count是字段数//argv是字段内容//columnName是字段名称for(int i0;i<count;i) {printf("%s%s\n", columnName[…