记录个人编译DCNv2的过程(windows 10,vs2019, torch1.7.0)

小白一个,因为配FairMOT环境需要用到DCNv2,就简单记录一下自己遇到的问题和解决方法。如有错误,请多指教。

首先主要参考了博客https://blog.csdn.net/Ningmoua/article/details/128449797的过程,因为之前装过vs2019,懒得换2017了,就想着先试试,没想到成了。

torch版本是1.7.0的,所以按照这个博主的说法用的https://github.com/rathaROG/DCNv2_Windows/tree/PyTorch-1.10版本的DCNv2。解压以后先放一边。

然后作为小白就傻傻的直接去用vs2019的那个prompt了,就是这个

整了半天,编译出来出错说找不到模块torch,我才想起来我torch装虚拟环境里了,不能直接这么装。然后就参考另一位大佬的说法,https://zhuanlan.zhihu.com/p/527168059,找到自己虚拟环境的vcvars64.bat文件路径,我自己的话是在下图所示路径找到的:

然后按照这位大佬的说法,我用的anaconda的终端,进入我自己的虚拟环境后输入命令

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"

然后就可以用了,测试了一下cl显示如下:

之后,进入刚刚下载好的DCNv2文件夹,运行:

make.bat

结果报错了,说我编码有问题,还有个不知道啥意思的warning:

就按照上面说的改,在anaconda虚拟环境那个文件夹底下找到这个cpp_extension.py,这里说274行出错,参考https://blog.csdn.net/tanmx219/article/details/100829920,就把原本的改成:

match = re.search(r'(\d+)\.(\d+)\.(\d+)', compiler_info.decode(' gbk').strip())

然后这个warning参考https://blog.csdn.net/jacke121/article/details/117537367,直接在刚刚的命令行输入:

    set DISTUTILS_USE_SDK=1
    set MSSdk=1

之后再运行一次make.bat,就成了:

应该算是成了吧?

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Yolov8并未直接实现了DCNv2结构。然而,我们可以通过在Yolov8中增加对DCNv2版本的调用来使用DCNv2DCNv2(可变形卷积)是一种改进的卷积操作,它可以在卷积过程中自适应地调整采样位置。这种方法可以更好地适应物体形状的变化,提高目标检测的性能。 要在Yolov8中使用DCNv2,可以按照以下步骤进行操作: 1. 安装ultralytics库,它包含了DCNv2的实现代码。 2. 导入DeformConv2d类,它是DCNv2的主要组件。 3. 在Yolov8的网络结构中,将常规的卷积层替换为DCNv2层。 4. 进行训练和测试,以验证DCNv2在Yolov8中的效果。 具体的代码如下所示: ```python # 导入所需的库和模块 from ultralytics.nn.DCNV2 import DeformConv2d import torch.nn as nn # 创建一个包含DCNv2的Yolov8网络结构 class Yolov8_DCNv2(nn.Module): def __init__(self): super(Yolov8_DCNv2, self).__init__() # 替换卷积层为DCNv2层 self.conv1 = DeformConv2d(in_channels, out_channels, kernel_size, stride, padding) # 继续添加其他的DCNv2层 # 添加其他的网络层和模块 def forward(self, x): # 网络的前向传播过程 # 进行训练和测试 model = Yolov8_DCNv2() # 进行训练和测试的代码 ``` 通过替换Yolov8中的常规卷积层为DCNv2层,我们可以使用DCNv2的优势来改善Yolov8的检测性能。请注意,以上代码仅为示例,具体的实现可能会有所不同,具体实现可以根据具体需求进行调整。 : 在前面的文章中,我们尝试用DCNv3替换YoloV8中的结构,实现了分数的上涨。在这篇文章中,我们尝试用DCNv1与DCNv2.比一比哪个才是最优秀的小黑子。: 增加对DCNv2版本的调用。代码如下: from ultralytics.nn.DCNV2 import DeformConv2d: 论文链接: DCN v1论文https://arxiv.org/pdf/1703.06211.pdf DCN v2论文https://arxiv.org/pdf/1811.1116 背景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值