Windows快速部署DCNv4(成功版)

文章目录

  • 一、介绍
  • 二、编译DCNv4
    • 2.1 下载源码
    • 2.2 编译DCNv4
  • 三、报错提示
    • 3.1 Cuda is not available
    • 3.2 需要Microsoft Visual C++ 14.0

一、介绍

  论文链接:[https://arxiv.org/pdf/2401.06197.pdf]
(https://arxiv.org/pdf/2401.06197.pdf)
  在这篇文章中介绍了一种高效和有效的算子DCNv4,它是专为广泛的视觉应用而设计的。DCNv4解决了其前身DCNv3的限制,且有两个关键的增强功能:

  • (1) 去除了空间聚合中的softmax归一化,以增强其动态性和表达能力;
  • (2) 优化存储器访问以最小化冗余操作以加速。这些改进显著加快了收敛速度,并大幅提高了处理速度,DCNv 4实现了三倍以上的前向速度。

  这些改进使DCNv4相比DCNv3具有显著更快的收敛速度和大幅提高的处理速度,DCNv4的前向计算速度超过了其前身的三倍。DCNv4在各种任务中表现卓越,包括图像分类、实例和语义分割,尤其在图像生成方面。

  将其与诸如潜在扩散模型中的U-Net等生成模型相结合时,DCNv4的表现优于其基线,表明它在提升生成模型方面具有潜力。在实际应用中,将DCNv3替换为DCNv4到InternImage模型中以创建FlashInternImage,带来了高达80%的速度提升和更好的性能,无需进一步修改。

  DCNv4在速度和效率上的改进,加上其在各种视觉任务中出色的性能,展示了其作为未来视觉模型基础构建模块的潜力。
在这里插入图片描述

二、编译DCNv4

2.1 下载源码

  源码下载链接:https://github.com/OpenGVLab/DCNv4
  源码下载完成后,解压后如下图所示:
在这里插入图片描述

2.2 编译DCNv4

  (1)使用cd命令进入DCNv4_op文件夹
在这里插入图片描述

  (2)在该文件夹下执行以下命令:

 python setup.py build install

  等待一段时间后,若出现下述提升证明编译成功:
在这里插入图片描述

三、报错提示

3.1 Cuda is not available

  在进行编译时,需要再cuda环境中进行。
在这里插入图片描述

  验证pytorch cuda可用:

  • 在Anaconda Prompt激活虚拟环境后,输入 python进入python控制台
  • 接着输入下述指令,显示True即代表cuda可用:
>>> import torch
>>> torch.cuda.is_available()
True

3.2 需要Microsoft Visual C++ 14.0

  安装过程中,也出现了下述错误,提示需要Microsoft Visual C++ 14.0。
  最终只能点击下述链接下载。下载完成,双击.exe文件,点击安装,等待10分钟左右即可完成安装。

Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools

在这里插入图片描述

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

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

相关文章

MySQL Undo Log、Redo Log、bin Log

Undo Log 回滚日志,用于将数据回滚到之前的状态。 MySQL在进行数据的增、删、改时,会将数据写入到Undo Log日志中。 对于Undo Log存在着insert和update两种类型的数据。插入语句对应的是insert类型,修改、删除语句对应的是update类型。 U…

【嵌入式开发 Linux 常用命令系列 7.6 -- sed 替换指定字符串】

请阅读【嵌入式开发学习必备专栏】 文章目录 sed 替换指定字符串 sed 替换指定字符串 背景: 找到当前目录下所有的.h 和 .c 文件 将他们中的字符 print_log替换为 demo_log 可以使用find命令结合sed命令在Linux环境下完成这项任务。下面是一个命令行示例&#xff…

【Android】Kotlin学习之Kotlin方法的声明和传参

方法声明 普通类的方法 静态类的方法 不需要构建实例对象, 可以通过类名直接访问静态方法 : NumUtil.double(1) companion object 伴生类的方法 使用companion object 在普通类里定义静态方法 参数 括号内传入方法 : 当参数是方法时, 并且是最后一个参数 , 可以使用括号外…

Linux -- > vim

vi和vim是什么 vi和vim是两款流行的文本编辑器,广泛用于Unix和类Unix系统中。它们以其强大的功能和灵活的编辑能力而闻名,特别是在编程和系统管理中非常受欢迎。 vi(Visual Interface) vi是最初的文本编辑器之一,由…

React 之 lazy(延迟加载)(十七)

lazy 能够让你在组件第一次被渲染之前延迟加载组件的代码。 在组件外部调用 lazy,以声明一个懒加载的 React 组件: import { lazy } from react;const MarkdownPreview lazy(() > import(./MarkdownPreview.js)); 配合 Suspense 实现懒加载组件 //App.js imp…

外观模式详解

外观模式 1 概述 有些人可能炒过股票,但其实大部分人都不太懂,这种没有足够了解证券知识的情况下做股票是很容易亏钱的,刚开始炒股肯定都会想,如果有个懂行的帮帮手就好,其实基金就是个好帮手,支付宝里就…

课时122:awk实践_进阶知识_赋值运算

1.2.1 赋值运算 学习目标 这一节,我们从 基础知识、简单实践、小结 三个方面来学习 基础知识 简介 awk本质上属于一种编程语言,所以它具有编程语言的一般功能,表达式、流程控制等基本上都在awk中具有想当程度的使用。这一节我们学习awk进…

【智能算法】最优捕食算法(OFA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2017年,GY Zhu受到动物行为生态学理论启发,提出了最优捕食算法(Optimal Foraging Algorithm, OFA)。 2.算法原理 2.1算法思想 OFA灵感来源…

【C++风云录】跨越语音壁垒:口语识别与方言分析

解码语音:语音识别新篇章 前言 本文将探讨C在口语识别与方言分析中的应用,简述其重要性和挑战,并详细介绍Kaldi, ProsodyLab-Aligner, PocketSphinx, HTK (HMM Toolkit), 和 OpenFst等语音识别和处理工具包和库的特点、主要功能以及实际应用…

常用的命令技巧总结

java命令执行 如下编码网站: Runtime.exec Payload Generater | AresXs Blogjava.lang.Runtime.exec() Payload Workarounds - Jackson_Thttps://www.bugku.net/runtime-exec-payloads/ 手动编码操作 bash -c {echo,cGluZyAxMjcuMC4wLjE7ZWNobyAxID50ZXN0LnR4dA}|…

Lab4: traps

RISC-V assembly Which registers contain arguments to functions? For example, which register holds 13 in mains call to printf? 根据RISC-V函数调用规范,函数的前8个参数使用a0-a7寄存器传递。 当main函数调用printf函数时,a2寄存器保存13 …

MVCC 详解

介绍 MVCC,全称 Multi-Version Concurrency Control,即多版本并发控制 MVCC的目的主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁。 这里的多版本指的是数据库中同时…

Springboot+Vue项目-基于Java+MySQL的毕业就业信息管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

网络工程师----第二十三天

1、关于有线传输介质: 1类线:主要用于电话传输 2类线:可用于电话传输和最高为4Mbps的数据传输,内部隐含有4对双绞线 3类线:多用于10Mbps以下的数据传输 4类线:可用于16Mpbs令牌环网和大型10Mbps以太网&…

跟我学C++中级篇——POD数据类型及演进

一、POD数据类型 首先说明,所谓POD类型不是常说的标准中的int,double这种数据类型。它是一种与C语言兼容的类型,能够直接以二进制形式与C库进行交互。这样说可能不好理解,意思就是说它可以直接使用memcpy,memmove等函数进行赋值。 POD&#…

java异常,日志,线程堆栈与Jvm调优

一.知识目录: 二.什么是java异常: 2.1 Throwable类中的重要方法: (1)四个构造方法(用来构造throwable对象,不同构造方法可以传递不同的参数值): /** 构造一个将 null 作为其详细消息的新 throwable */ Thr…

在STM32中用寄存器方式点亮流水灯

文章目录 实验资料一、对寄存器的理解1.通俗认识寄存器2.深入了解寄存器(1)端口配置低寄存器(配置0到7引脚的寄存器)(2)端口配置高寄存器(配置8到15引脚) 3.GPIO口的功能描述 二、配…

鸿蒙内核源码分析(Shell解析篇) | 应用窥视内核的窗口

系列篇从内核视角用一句话概括shell的底层实现为:两个任务,三个阶段。其本质是独立进程,因而划到进程管理模块。每次创建shell进程都会再创建两个任务。 客户端任务(ShellEntry): 负责接受来自终端(控制台)敲入的一个个字符&…

【云原生】 Kubernetes核心概念

目录 引言 一、部署方式回溯 (一)传统部署时代 (二)虚拟化部署时代 (三)容器部署时代 二、Kubernetes基本介绍 (一)为什么使用k8s (二)主要功能 &am…

以AI对抗AI,瑞数“动态安全+AI”助力在线反欺诈

勒索病毒、恶意软件、网络钓鱼攻击……科技头条每天都充斥着各种网络威胁的故事。同时,AI大模型等技术的加快发展,让网络威胁花样百出,有些明目张胆,有些则“锦衣夜行”,愈发难以识别和防范,为方兴未艾的数…