windows10系统CenterNet环境搭建及踩坑记录
看了网上许多windows10下的搭建教程,关于pytorch环境搭建和nms , DCNv2的编译较为粗略,对无基础的小伙伴非常不友好,花费了三天,终于成功运行demo.py。在此根据回忆记录搭建过程。
CenterNet项目源码下载
文章目录
- 项目环境
- 一、 Anaconda3+Python3.6
- 1. 安装Anaconda3
- 2.更换Anaconda镜像源
- 3.创建虚拟环境
- 4.踩坑1
- 二.安装CUDA10.0
- 三.安装pytorch
- 四.pip requirements.txt
- 1.踩坑2
- 2.踩坑3
- 3.总结
- 五、安装Visual Studio 2017
- 1.安装
- 2.配置环境变量
- 六、编译 nms
- 踩坑4
- 踩坑5
- 踩坑6
- 踩坑7
- 踩坑8
- 七、 编译 DCNv2
- 八、运行demo.py
项目环境
win10 + cuda10 + anaconda3 + pytorch1.2.0 + vs2017 + python3.6
一、 Anaconda3+Python3.6
1. 安装Anaconda3
安装教程可参考:Anaconda介绍、安装及使用教程
2.更换Anaconda镜像源
安装完成后,打开anaconda prompt,更换默认源为清华源,以便加快安装包的下载速度。
更换命令如下:
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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
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 --set show_channel_urls yes
conda config --show-sources # 查看当前所有源
conda config --remove-key channels # 恢复默认源
3.创建虚拟环境
为本次CenterNet项目创建项目同名虚拟环境Centernet,指定python版本3.6
conda create -n CenterNet python=3.6 #
activate CenterNet # 切换环境至CenterNet
conda env list # 查看环境列表
activate <env_name> # 切换环境
deactivate <env_name> # 退出环境
conda remove -n <env_name> -all # 删除虚拟环境
4.踩坑1
:后期编译nms 和 DCNv2时,配置了vs2017环境变量后,还是有关于vs2017的报错。
后来猜测是不是与本机的 python环境冲突,系统自动使用了本机安装的python去编译。
尝试成功的解决措施:删除系统环境变量path中有关本机python的环境配置,将anaconda conda.exe和虚拟环境python.exe目录加到系统环境变量path中去,使用CenterNet虚拟环境中的python去编译nms 和 DCNv2。环境变量配置如下图所示:
二.安装CUDA10.0
安装CUDA,为下一步安装pytorch做准备。
在安装之前,有必要了解一下pytorch,cuda,显卡,驱动四者之间的关系,判断自己的机器是否支持CUDA10.0,若支持,下载CUDA10.0。
安装验证:
注意:nvidia-smi的CUDA版本是指系统可以安装的最高版本,并不是真正的安装版本。
三.安装pytorch
CUDA安装验证成功后,接下来可以去pytorch官网下载pytorch1.2.0啦,官网给出的运行命令如下(-c python意思是使用默认源安装,速度非常慢,在此使用清华源安装,所以安装时去掉-c python):
安装(使用anaconda promt切换至虚拟环境CenterNet):
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0
编写test.py测试安装结果:
import torch # 如正常则静默
a = torch.Tensor([1.]) # 如正常则静默
a.cuda() # 如正常则返回"tensor([ 1.], device='cuda:0')"
四.pip requirements.txt
pytorch安装成功,接下来使用pip安装requirements.txt,有关pip的换源方法不在这里赘述。
安装(使用anaconda promt切换至虚拟环境CenterNet):
pip install -r requirements.txt
1.踩坑2
当我以为整个虚拟环境的搭建成功一大半的时候,这里我又又踩坑了,pip安装老是报错,并且还使用了本地的python环境和pip。
使用以下命令更新conda环境中的pip版本,成功解决问题:
python -m pip install --upgrade pip
2.踩坑3
第二次在笔记本搭建时,按照踩坑2,我先更新了pip,结果又导致pip cannot import name scheme key。
解决办法:强制重新安装pip。
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py --force-reinstall
python3.6可能会提示网址不对,根据提示修改网址重新curl即可
3.总结
至此,经过有又又又踩坑,项目的虚拟环境可算是搭建好了,尤其要注意conda环境与本地python环境的隔离。以上安装操作都要在conda虚拟环境CenterNet下进行。使用conda list查看下当前环境的安装情况:
五、安装Visual Studio 2017
这一步至关重要,决定后两个文件是否编译成功。可以先去看第六步:编译 nms 了解为什么要这样配置。
下载Visual Studio 2017
1.安装
要勾引C++与python开发安装
2.配置环境变量
去安装目录下找到cl.exe文件的位置,加入系统环境变量path中
六、编译 nms
按照网上的教程,编译nms
cd CenterNet\src\lib\external
python setup.py build_ext --inplace
如果编译有问题的话,需要注释setup.py里面的这句代码
#extra_compile_args=["-Wno-cpp", "-Wno-unused-function"]
会一遍编译成功吗?当然不会!!!执行结果惨哭宝宝,收获如下踩坑4,5,6,7,8。
提示:看完所有踩坑再去一次性安装配置VS2017,这一步简直太重要了!!!
踩坑4
这一步和下一步编译DCNv2无需在anaconda prompt CenterNet环境里运行,参照踩坑1,设置好python环境变量,cd CenterNet\src\lib\external,用cmd直接运行编译命令。至于为什么,我也不知道,反正我是这样做成功的。
踩坑5
问题:没有编译器,不能编译
解决办法:安装VS2017
踩坑6
问题:安装完VS2017,找不到编译器位置或者出现有关cl.exe的错误
解决办法:配置环境变量
踩坑7
问题:报错Unable to find vcvarsall.bat
解决办法:在安装时勾引安装python开发环境
踩坑8
问题:报错LINK : fatal error LNK1158: 无法运行“rc.exe”
解决办法:解决无法运行“rc.exe”
以上踩坑5,6,7解决过程参照五:安装Visual Studio 2017。
七、 编译 DCNv2
先删除自带的DCNv2,重新clone一份新的
cd CenterNet\src\lib\models\networks
rm -rf DCNv2
git clone https://github.com/CharlesShang/DCNv2
cd DCNv2
网上教程还需修改一行代码,现在DCNv2作者好像修复了这个问题,已经把代码改过了,不需要再修改了,直接编译。
强调:同踩坑4,注意使用cmd运行
python setup.py build develop
八、运行demo.py
cd CenterNet/src
python demo.py ctdet --demo ../images/17790319373_bd19b24cfc_k.jpg --load_model ../models/ctdet_coco_dla_2x.pth --debug 2
python demo.py multi_pose --demo ../images/17790319373_bd19b24cfc_k.jpg --load_model ../models/multi_pose_dla_3x.pth --debug 2
运行过程中会在线下载ctdet_coco_dla_2x.pth,multi_pose_dla_3x.pth文件,可能会出现HTTP request请求超时报错。
解决办法:事先下载好以上两个文件,放入项目models文件夹下
若已经将文件下载至本地后,运行demo.py还是会在线下载模型,注释pose_dla_dcn文件中的第313,314行代码:
demo.py运行成功:
路漫漫其修远,搞了三天,总算是把demo.py跑通了,接下来开始下一步训练数据啦~~~
- 类的继承与接口
- parameterType和@Param注解用法
- jkd8新特性 StreamAPi流
- 如何评测软件系统的安全性
- Linux Crontab执行hadoop命令脚本失败
- Java Web和Java后端开发的学习路线
- MFC CStdioFile简单用法
- 请描述你对测试的了解, 内容可以涉及测试流程, 测试类型, 测试方法, 测试工具等。
- 超好玩的mac模拟经营游戏:巨型水族馆中文版
- emgu 配置
- 【分布式微服务】消息中心初步搭建
- Centos安装janus
- janus的官网介绍
- tensorflow高阶教程:tf.dynamic
- 做外贸怎么起步,从哪里开发客户
- Redis 集群搭建及集群管理工具
- 架构:常用的三种架构模式