DINO在Windows环境下训练 自定义数据集

这篇具有很好参考价值的文章主要介绍了DINO在Windows环境下训练 自定义数据集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

论文: https://link.zhihu.com/?target=https%3A//arxiv.org/abs/2203.03605
代码: https://link.zhihu.com/?target=https%3A//github.com/IDEACVR/DINO
DINO: 让目标检测拥抱Transformer

主要特性:

  1. SOTA性能:在大模型上以相对较小的数据和模型(~1/10相比之前SwinV2)取得了最好的检测结果。在ResNet-50的标准setting下取得了51.3 AP。
  2. End2end(端到端可学习):DINO属于DETR类型的检测器,是端到端可学习的,避免了传统检测器许多需要手工设计的模块(如NMS)。
  3. Fast converging(收敛快): 在标准的ResNet-50 setting下,使用 5 个尺度特征(5-scale)的 DINO 在 12 个 epoch 中达到 49.4 AP,在 24 个 epoch 中达到 51.3 AP。使用4个尺度特征(4-scale)的DINO达到了了类似的性能并可以以 23 FPS 运行。

DINO在Windows环境下训练 自定义数据集,windows,深度学习,人工智能,目标检测

配置环境

下载代码

git clone https://github.com/IDEA-Research/DINO.git
cd DINO

安装Pytorch环境

# an example:
conda install -c pytorch pytorch torchvision

安装代码环境

pip install -r requirements.txt

编译CUDA operators

cd models/dino/ops
python setup.py build install
# unit test (should see all checking is True)
python test.py
cd ../../..

注意:

  1. 若出现cocoapi/panopticapi/MultiScaleDeformableAttention编译安装失败的情况, 请检查电脑中是否存在完整的C++编译环境, 缺少请安装相应编译环境, Win请参考如何解决 Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
  2. 编译CUDA operators 要求Pytorch与CUDA版本必须一致, 不能高也不能低. 若不一致请调成直至版本相同
  3. 执行python test.py后若出现缺少包MultiScaleDeformableAttention, 则说明CUDA operators编译安装失败, 若出现显存/内存溢出报错则属于正常现象.

PS: 其实CUDA高于Pytorch并不影响运行,但是无法通过编译,因此也可以通过其使用他具有低版本CUDA环境的电脑将MultiScaleDeformableAttention编译成WHL版本再在本机安装即可。若实在是无法正常完成编译可以尝试使用对应包的WHL版本进行安装,这里提供一些我基于Python3.8、CUDA11.7环境下编译的一些常见包的WHL版本。
百度网盘
提取码:z4ia

训练

COCO数据集

执行scripts/DINO_train.sh /path/to/your/COCODIR即可开始训练

python main.py --output_dir ./logs/DINO/R50_IP102_finetune -c ./config/DINO/DINO_4scale.py --coco_path ./coco_path --options dn_scalar=100 embed_init_tgt=TRUE dn_label_coef=1.0 dn_bbox_coef=1.0 use_ema=False dn_box_noise_scale=1.0

自定义数据集

DINO采用COCO标准数据集, 目录结构如下:

COCODIR/
  ├── train2017/
  ├── val2017/
  └── annotations/
  	├── instances_train2017.json
  	└── instances_val2017.json

1. 准备数据集

训练前首先需要将自己的数据集转为COCO标准
若使用的是YOLO标准或是VOC标准,请自行搜索数据集转换工具

2. 修改num_classes

修改数据集后需要将所使用参数脚本DINO_4scale.py中的num_classes修改为最大类别ID+1(此处建议复制创建一个新的脚本, 防止出现混乱)
注意一定是最大类别ID+1, 这里num_classes有歧义,它指的并不一定真的是数据集中的类别数量, 比如COCO数据集虽然只有80是个类别,但是category_id的范围却是1-90, 因此这里默认的num_classes是90+1. 与是否从0开始以及是否存在间隔无关
具体详情见Confusion about num_classes 108

然后将models/dino.py中的717行处修改为如下代码:

match_unstable_error = args.match_unstable_error  
dn_labelbook_size = args.dn_labelbook_size  
if dn_labelbook_size < num_classes:  
    dn_labelbook_size = num_classes

dn_labelbook_size默认为91, 它需要大于等于num_classes.

3. 修正Win环境特有错误

此处仅Win环境下需要修改
修改util/slconfig.py中的83行处代码为如下形式:

if filename.lower().endswith('.py'):  
    with tempfile.TemporaryDirectory() as temp_config_dir:  
        temp_config_dir = "C:/tempDir/"  
        temp_config_file = tempfile.NamedTemporaryFile(  
            dir=temp_config_dir, suffix='.py')  
  
        temp_config_file = open('C:/tempDir/temp.py', 'w+b')  
        temp_config_name = osp.basename(temp_config_file.name)  
        shutil.copyfile(filename,  
                        osp.join(temp_config_dir, temp_config_name))  
        temp_module_name = osp.splitext(temp_config_name)[0]  
        sys.path.insert(0, temp_config_dir)  
        SLConfig._validate_py_syntax(filename)  
        mod = import_module(temp_module_name)  
        sys.path.pop(0)  
        cfg_dict = {  
            name: value  
            for name, value in mod.__dict__.items()  
            if not name.startswith('__')  
        }  
        # delete imported module  
        del sys.modules[temp_module_name]  
        # close temp file  
        temp_config_file.close()
  1. 创建临时文件夹并在此文件夹下创建临时文件
  2. temp_config_dir修改为临时文件夹
  3. temp_config_file修改为临时文件

具体详见PermissionError: [Errno 13] Permission denied: ‘C:\Users\20825\AppData\Local\Temp\tmpt11h2ul9\tmp2fdhjty4.py’ #43文章来源地址https://www.toymoban.com/news/detail-622763.html

4. 训练

4.1 从零开始
python main.py --output_dir logs/DINO/R50_custom_finetune -c ./config/DINO/DINO_4scale_custom.py --coco_path ./coco_path --options dn_scalar=100 embed_init_tgt=TRUE dn_label_coef=1.0 dn_bbox_coef=1.0 use_ema=False dn_box_noise_scale=1.0 
4.2微调
python main.py --output_dir logs/DINO/R50_custom_finetune -c config/DINO/DINO_4scale_custom.py --coco_path ./coco_path --options dn_scalar=100 embed_init_tgt=TRUE dn_label_coef=1.0 dn_bbox_coef=1.0 use_ema=False dn_box_noise_scale=1.0 --pretrain_model_path./checkpoint0033_4scale.pth --finetune_ignore label_enc.weight class_embed

引用

  1. DINO: 让目标检测拥抱Transformer
  2. PermissionError: [Errno 13] Permission denied: ‘C:\Users\20825\AppData\Local\Temp\tmpt11h2ul9\tmp2fdhjty4.py’ #43
  3. Confusion about num_classes 108
  4. 如何解决 Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“

到了这里,关于DINO在Windows环境下训练 自定义数据集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Windows配置深度学习环境——torch+CUDA

    这里基于读者已经有使用Python的相关经验,就不介绍Python的安装过程。 win10+mx350+Python3.7.4+CUDA11.4.0+cudnn11.4 torch 1.11.0+cu113 torchaudio 0.11.0 torchvision 0.12.0+cu113 一般来说在命令行界面输入python就可以了解python版本。 也可以使用如下代码查询python版本。 以下是torch与Python版本的对应关

    2024年01月25日
    浏览(58)
  • 基于 Docker 的深度学习环境:Windows 篇

    本篇文章,我们聊聊如何在 Windows 环境下使用 Docker 作为深度学习环境,以及快速运行 SDXL 1.0 正式版,可能是目前网上比较简单的 Docker、WSL2 配置教程啦。 早些时候,写过一篇《基于 Docker 的深度学习环境:入门篇》,聊过了在 Linux 环境下,如何简单、正确的配置 GPU Docker

    2024年02月15日
    浏览(45)
  • Windows下PyTorch深度学习环境配置(GPU)

    (路径最好全英文) (下载好后,可以创建其他虚拟环境,因为是自己学习,所以先不放步骤,有需要者可以参考B站up我是土堆的视频) 1.确定显卡型号 (如图右上角,我是1050ti) 确定显卡算力 6.1 (更多CUDA和GPU间的算力关系可参考https://zhuanlan.zhihu.com/p/544337083?utm_id=0) 确

    2024年02月16日
    浏览(64)
  • windows11 安装cuda和cudnn深度学习开发环境

    首先先要确认自己的显卡最高能支持到cuda的版本,一般是不限制版本号的。 然后在官网地址下载: cuDNN的官网下载地址:cuDNN Archive | NVIDIA Developer CUDA 的下载地址:CUDA Toolkit Archive | NVIDIA Developer 有一点需要注意的是,需要查看cuda支持的cudnn版本:  找与自己的cuda 版本对于的

    2024年02月16日
    浏览(60)
  • 深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)

    入门深度学习,很多人经历了从入门到放弃的心酸历程,且千军万马倒在了入门第一道关卡:环境配置问题。俗话说,环境配不对,学习两行泪。 如果你正在面临配置环境的痛苦,不管你是Windows用户、Ubuntu用户还是苹果死忠粉,这篇文章都是为你量身定制的。接下来就依次

    2024年01月18日
    浏览(41)
  • Windows深度学习环境的配置(从不会到学会!最全版!)

    目录: 前言 下载 安装 anaconda 下载 安装 pycharm  下载 更新NVIDIA 驱动  下载安装 安装cuda 下载并移动cudnn    安装适配的pytorch 验证pytorch 在jupyter notebook中打开配置好的虚拟环境 在Pycharm解释器中配置虚拟环境 前言 使用的软硬件配置: Windows10 NVIDIA GeForce RTX 2060 Ti Laptop GPU a

    2024年02月13日
    浏览(55)
  • Windows安装GPU环境CUDA、深度学习框架Tensorflow和Pytorch

    Windows安装GPU环境CUDA、深度学习框架Tensorflow和Pytorch 首先需要安装GPU环境,包括cuda和cudnn。 深度学习本质上就是训练深度卷积神经网络。 cuda:显卡能够完成并行计算任务,所有的操作是比较底层的、复杂的。 cudnn:在cuda之上有一个专门用于深度神经网络的SDK库来加速完成相

    2023年04月26日
    浏览(61)
  • windows下配置pytorch + yolov8+vscode,并自定义数据进行训练、摄像头实时预测

    最近由于工程需要,研究学习了一下windows下如何配置pytorch和yolov8,并自己搜集数据进行训练和预测,预测使用usb摄像头进行实时预测。在此记录一下全过程 1. vscode安装 windows平台开发python,我采用vscode作为基础开发平台,点击 https://code.visualstudio.com/进入vscode官网,下载对应

    2024年02月16日
    浏览(66)
  • Windows Server 2019服务器远程桌面服务部署+深度学习环境配置教程

    实验室需要将Win10的系统改装为Server系统供多人以远程桌面的方式使用,同时配置Tensorflow+Pytorch的深度学习环境,遂记录一下大概步骤。 和安装其他Windows系统的步骤差不多,也是插入U盘后进BIOS然后根据引导分区创建管理员等等,可以参考:windows server 2019安装教程 如果装完

    2024年02月04日
    浏览(87)
  • 【pytorch】新的windows电脑从头搭建pytorch深度学习环境(完整版+附安装包)

    最近新买了一台台式机,配置是 i5 13600KF + 3060Ti 。我本身在工作中台式机上是使用pytorch上进行深度学习,因此需要从头搭建pytorch环境。此文算是记录一下,如果有人需要参考也是可以的。 新电脑首先需要对环境进行一定的配置,简而言之就是装一下驱动+软件。 包括显卡驱

    2024年02月09日
    浏览(58)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包