Windows环境下调试DAB-DETR与Deformable-DETR

news/2025/1/9 3:23:41/

先前都是在服务器上运行DETR的相关程序,服务器使用的是Linux,所以运行较为简单,但如果想要简单的debug的话就没必要使用服务器了,今天便来在Winodws环境下调试DETR类项目,这里以Deformable-DETR与DAB-DETR为例。
首先是DAB-DETR的配置,这个部分较为简单,需要注意的是DAB-DETR不需要配置CUDA算子,如果我们只想执行DAB-DETR程序的话我们将DAB-Deformable-DETR的引入模块删掉即可。

在这里插入图片描述

同时注释掉model/init下的这段代码

在这里插入图片描述

创建conda环境

conda create -n deformable_detr python=3.7

激活conda环境

activate deformable_detr

查看CUDA版本,因为我们在切换环境变量的CUDA顺序后在创建对应的conda环境后,这个CUDA便会跟随conda环境

nvcc --version

在这里插入图片描述

按照pytorch,根据CUDA版本选择pytorch,发现使用conda命令无法找到匹配的cuda与pytorch,所以我们可以使用pip按照方式,其可以在pytorch的同时按照一个小cuda。

conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.6 -c pytorch -c conda-forge

当然也可以使用:

pip install torch==1.12.0+cu116 torchvision==0.13.0+cu116 torchaudio==0.12.0 --extra-index-url https://download.pytorch.org/whl/cu116

随后切换到项目根目录下按照requirement.txt中对应的包,发现pycocotools安装失败,可以直接安装windows版本的。

pip install pycocotools-windows -i https://pypi.tuna.tsinghua.edu.cn/simple

DAB-Deformable-DETR额外配置

DAB-DETR的作者在Deformable-DETR的基础上开发出了DAB-Deformable-DETR,要运行Deformable-DETR是需要额外配置CUDA算子的。下面为配置过程,我们在刚刚创建的环境基础上执行下面操作。

随后切换到model/ops文件夹下进行CUDA编译,报错

building ‘MultiScaleDeformableAttention’ extension error: Microsoft
Visual C++ 14.0 or greater is required. Get it with “Microsoft C++
Build Tools”:
https://visualstudio.microsoft.com/visual-cpp-build-tools/

网上的方法都是让安装Visual C++ 14.0,但这个博主感觉太过费时费力,我们只需要让conda环境内有相应的编译文件即可,没必要去下载安装庞大的Visual C++ 14.0。

conda install libpython m2w64-toolchain -c msys2

在这里插入图片描述
再次进行编译CUDA算子,发现依旧报错,没办法了,只能老老实实的去安装
Visual C++ 14.0了。
Visual C++ 14.0 下载地址
在这里插入图片描述
随后选择好安装位置与需要的版本即可。
在这里插入图片描述


http://www.ppmy.cn/news/45280.html

相关文章

Anaconda及其他说明及安装

来自神秘人的投稿! 以下内容来源于官方视频说明:Anaconda Distribution versus Miniconda和其他整理与添加。 一、基础信息了解 1. 什么是Anaconda Anaconda Distribution:形象的比喻——一台笔记本电脑,一切都组装好了&#x…

开发者笑疯了! LLaMa惊天泄露引爆ChatGPT平替狂潮,开源LLM领域变天

来源: 新智源 微信号:AI-era Meta的LLaMA模型开源,让文本大模型迎来了Stable Diffustion时刻。谁都没想 谁能想到,一次意外的LLaMA泄漏,竟点燃了开源LLM领域最大的创新火花。 一系列表现出色的ChatGPT开源替代品——「羊驼家族」…

单片机学习之中断与定时/计数器

记录学习中断的使用。 1. 使用工具 使用开发板: 普中科技开发板 编译软件: keil 2. 复习中断及相关概念 CPU在处理 事件A 时,中断源 发出中断请求,请求cpu处理事件B ,cpu 中断 当前工作,转去处理事件B&a…

Nacos 客户端服务注册源码分析-篇二

Nacos 客户端服务注册源码分析-篇二 继续接上回,上回分析到 NacosNamingService 的整个注册的流程,其实是通过 NacosFactory.createNamingService 方法,反射获取 NacosNamingService 接口的实现类 NacosNamingService ,而 NacosN…

分享5款办公效率工具|让你早点下班

如果每天你的工作都很多,做不完需要加班怎么办? 不知道你会不会加班,但是我肯定不会,因为我知道哪些高效率的办公工具,可以帮助我早点下班,今天来给大家分享一下。 1.FlowUs FlowUs 是一款为个人和团队打造的新一代生…

自定义类型——位段

什么是位段? 位段又叫做位域,具体是一种可以把数据以位的形式紧凑的存储,并允许程序员对此结构位进行操作的数据结构 当结构体的成员变量定义之后浪费了较大的空间 (比如int a 2,则浪费了30个比特位的空间&#xff0…

nvm-windows的安装使用及踩坑指南

nvm是node的一款版本管理工具,可以简单操作node版本的切换、安装、查看。常规来说,开发中安装一个node版本就够了,但是最近在开发中有的老项目或者一些特定的项目需要来回切换node的版本,不可能手动去卸载掉之前的node版本&#x…

spring常用注解(全)

一、前言 Spring的一个核心功能是IOC,就是将Bean初始化加载到容器中,Bean是如何加载到容器的,可以使用Spring注解方式或者Spring XML配置方式。 Spring注解方式减少了配置文件内容,更加便于管理,并且使用注解可以大大…