CenterNet复现错误总结

简介: CenterNet复现遇到的一些问题总结

这里记录一下复现的流程和遇到的问题:

1 下载项目源码

作者实现的:https://github.com/xingyizhou/CenterNet

2 编译nms

cd CenterNet\src\lib\external
python setup.py build_ext --inplace

2.1 问题1

问题描述

cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”

解决办法

如果编译有问题的话,需要注释setup.py里面的这句代码

extra_compile_args=["-Wno-cpp", "-Wno-unused-function"]

2.2 问题2

问题描述

D:\anaconda3\include\pyconfig.h(59): fatal error C1083: 无法打开包括文件: “io.h”: No such file or directory

解决办法

安装windows sdk

3 编译DCN2项目

首先更新DCN2项目

  1. 删除原先的
cd CenterNet\src\lib\models\networks
rm -rf DCNv2
  1. clone新的
git clone https://github.com/CharlesShang/DCNv2
cd DCNv2

修改DCNv2源码

  1. 找到DCNv2/src/cuda/dcn_v2_cuda.cu并打开
  2. THCState *state = at::globalContext().lazyInitCUDA();前添加# extern THCState *state;

# extern THCState *state;
THCState *state = at::globalContext().lazyInitCUDA();

开始编译

python setup.py build develop

3.1 问题1

git网络问题导致clone失败,我多试了几次就成功了

3.2 问题2

问题描述

subprocess.CalledProcessError: Command ‘[‘ninja‘, ‘-v‘]‘ returned non-zero exit status 1

原因

这个错误的出现主要是因为pytorch版本大于1.5

解决办法

  1. pytorch版本降低到1.5一下(没试过)
  2. 将DCNv2中的setup.py中的cmdclass={'build_ext': BuildExtension}这一行改为cmdclass={"build_ext": torch.utils.cpp_extension.BuildExtension.with_options(use_ninja=False)}(pytorch默认使用ninjia作为backend,这里把它禁用掉就好了)
相关文章
|
3月前
|
机器学习/深度学习 存储 算法
【复现】尝试使用numpy对卷积神经网络中各经典结构进行改写复现
【复现】尝试使用numpy对卷积神经网络中各经典结构进行改写复现
76 0
【复现】尝试使用numpy对卷积神经网络中各经典结构进行改写复现
|
3月前
|
机器学习/深度学习 网络架构 计算机视觉
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
YOLOv5改进 | 检测头篇 | 利用DBB重参数化模块魔改检测头实现暴力涨点 (附代码 + 详细修改教程)
234 3
|
3月前
|
算法 计算机视觉
YOLOv3 的非极大值抑制(NMS)算法是如何工作的,它对最终检测结果有何影响?
YOLOv3 的非极大值抑制(NMS)算法是如何工作的,它对最终检测结果有何影响?
|
3月前
|
数据挖掘 计算机视觉
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
YOLOv5改进 | 损失篇 | VarifocalLoss密集检测专用损失函数 (VFLoss,论文一比一复现)
369 1
|
2月前
|
机器学习/深度学习 算法 Python
YOLOV5应用实战项目:钢材表面缺陷检测(数据集:NEU-CLS)笔记
YOLOV5应用实战项目:钢材表面缺陷检测(数据集:NEU-CLS)笔记
|
2月前
|
机器学习/深度学习 自然语言处理 前端开发
深度学习-[数据集+完整代码]基于卷积神经网络的缺陷检测
深度学习-[数据集+完整代码]基于卷积神经网络的缺陷检测
|
3月前
|
算法
基于蒙特卡洛模拟复现谢林模型(计算机社会学)
在谢林模型中,有一片方形区域,区域又被均匀分成若干小方格;有一群被称为代理的个体,每个代理居住在一个小方格内。这些代理可以分成若干类,所有代理都希望周边8个格子尽可能住有较多的同类代理,若居住区域不满足代理的居住要求,则该代理会搬到另一区域居住。
|
3月前
|
机器学习/深度学习 并行计算 算法
十分钟带你复现YOLOv8
十分钟带你复现YOLOv8
324 0
|
3月前
|
机器学习/深度学习 自然语言处理
【论文精读】COLING 2022-KiPT:知识注入提示调优的事件检测模型
【论文精读】COLING 2022-KiPT:知识注入提示调优的事件检测模型
|
程序员 测试技术 数据库
如何复现难以复现的缺陷
重现缺陷很容易陷入盲目的尝试,直到测试人员感到疲倦而放弃,也没有多少进展。提出错误猜测使得测试有明确的目标,在它的指引下测试人员可以自由发挥,而不会迷失方向。整个过程的特征是设定明确的目标、用实验去获得信息、根据新信息建立新目标。
145 0