cuda10.1+pytorch1.7配置centernet环境

文章目录

  • 前言
  • 1、Anaconda虚拟环境创建
  • 2、安装pytorch1.7
    • 2.1可以去官网https://pytorch.org/ 选择对应自己cuda版本的pytorch
    • 2.2可以下载离线文件,然后在本地安装
    • 2.3使用清华镜像
  • 3、配置CenterNet
    • 3.1下载centernet
    • 3.2安装依赖库
    • 3.3下载cocoapi
    • 3.4编译DCNv2
    • 3.5编译NMS
  • 4、运行demo
    • 4.1下载模型文件
    • 4.2解决自动下载模型
    • 4.3测试demo
  • 总结


前言

我是在已有cuda10.1环境的linux服务器中配置centernet环境的,所以没有配置cuda环境的小伙伴可以先参考其他博客配置好cuda环境,再来看这篇博客。-------郑重提醒:这篇博客绝对可以解决小伙伴们在配置centernet环境时所遇到的大部分问题,说多了都是泪啊!!!


1、Anaconda虚拟环境创建

新上手的小伙伴一定要创建虚拟环境,在虚拟环境中配置包,不然会出现各种各样的错误。这里我使用的是Anaconda3。

conda create --name CenterNet python=3.6//创建python环境为3.6的虚拟环境
conda activate CenterNet //进入该环境

2、安装pytorch1.7

在安装pytorch之前,一定要先查看自己cuda版本,然后下载对应版本的pytorch,不然在编译DCNv2的时候会报错:没有cuda支持。
废话不多说,开整!!!

2.1可以去官网https://pytorch.org/ 选择对应自己cuda版本的pytorch

但是这种方法下载困难,我尝试很久都连接不上官网给的地址,再说官网给你配置的pytorch版本一般是最新的,不满足我们的需求。

2.2可以下载离线文件,然后在本地安装

这个方法速度很快,但是我在后面会遇到问题,测试torch时报错,缺失文件。可能是因为我的服务器中安装多个虚拟环境,本地安装时,系统检测到一些文件已经安装后,就不给我新建的虚拟环境安装了,系统真是太懒了!!!

2.3使用清华镜像

这是我最终选择的方法,下载速度很快,可以达到Mb/s级别。
首先确定你是在新建的虚拟环境中,即已经运行了:

conda activate CenterNet //进入该环境

然后配置清华镜像:参考https://zhangkaifang.blog.csdn.net/article/details/86497684

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

最后安装pytorch,再次提醒:这里我cuda版本为10.1

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1
#官网给的命令后面有 -c pytorch,因为我们使用清华镜像下载,所以不加这个后缀。

下载好之后要验证以下torch是否可用

python
import torch

3、配置CenterNet

3.1下载centernet

有博客说下载离线的centernet后面会出错,必须使用git下载。我没有验证过,感兴趣的小伙伴可以自行踩坑!!!

CenterNet_ROOT=/path/to/clone/CenterNet 
git clone https://github.com/xingyizhou/CenterNet $CenterNet_ROOT

/path/to/clone/是自己设置的路径,我是直接/home/user。Centernet不需要自己创建,你自己创建还会报错!

3.2安装依赖库

pip install -r requirements.txt

一些博客把安装依赖库放在下载cocoapi后面,但是有时候会报错。因为依赖库中有一个包Cpython,需要在cocoapi setup之前下载,不然会报错。

3.3下载cocoapi

cd /path/to/clone/CenterNet 
git clone https://github.com/cocodataset/cocoapi.git $COCOAPI
cd $cocoapi/PythonAPI
make
python setup.py install --user

先进入3.1中下载的CenteNet文件中,然后在里面下载cocoapi。

3.4编译DCNv2

最让我恶心的一个步骤,没有之一,真是在这里踩了无数的坑。hetui~
因为我们用的cuda版本和pytorch版本过高,CenteNet文件中的DCNv2不能用了,所以我们需要下载一个适用与pytorch1.7版本的DCNv2。
github上有支持PyTorch1.7的源码,“https://github.com/lbin/DCNv2/tree/pytorch_1.7”,可以直接使用。
将下载好的DCNv2替换掉CenteNet文件中原来的DCNv2,记得改名字。这里的DCNv2版本貌似只适用与pytorch1.7,pytorch1.7以下的肯定不支持,以上没试过。

cd src\lib\models\networks\DCNv2
bitfusion run -n 1 -p 0.5 -- python setup.py build develop

上面命令中的bitfusion run -n 1 -p 0.5 – 是我使用gpu运行.py文件时要加的前缀,在运行python setup.py build develop之前确定你是在使用gpu运行这条命令,如果默认使用gpu的话不需要加前缀。
在这里我还踩过一个坑,有的博客使用从 https://github.com/CharlesShang/DCNv2 中下载的DCNv2替换CenteNet文件中原来的DCNv2,这里说明以下:这个DCNv2 在pytorch1.7版本上不可用!!!!!

3.5编译NMS

这一步我没做,嘿嘿!!

4、运行demo

4.1下载模型文件

参照博客https://blog.csdn.net/chaosinorder/article/details/100601705
下载好的模型放在CenterNet/models里。

4.2解决自动下载模型

下面的图片是别人的,我也不知道为啥自动加了我的水印???
cuda10.1+pytorch1.7配置centernet环境_第1张图片

4.3测试demo

bitfusion run -n 1 -p 0.5 --是我在服务器中使用gpu运行.py文件时要加的前缀。

bitfusion run -n 1 -p 0.5 -- python demo.py ctdet --demo  --load_model 

cuda10.1+pytorch1.7配置centernet环境_第2张图片

总结

终于完成了!!!如果我们环境一致的话,我相信这一套流程是可以帮助到你的,在centernet上训练自己的数据集我还没做,兄弟们,等我踩坑!!!欢迎在评论区中一起交流!虽然我不一定会看,看了也不一定会,但是如果是我踩过的坑,还是会略知一二的。

你可能感兴趣的:(CenterNet,pytorch,深度学习,python)