是这样的,我最近在试着弄一个yolo的环境。yolo的基础是darknet,darknet需要从源码编译,而且是在linux环境下的源码编译。考虑到gpu加速的问题,自然也希望能上cuda,另外tensorflow这个框架也还准备学,所以cuda和cudnn都需要配置好。所以最近一个多星期有空的时候就在琢磨这个事情。
双系统
首先,windows 10 + ubuntu的wsl这条路是走不通的,我发现连NVIDIA的驱动都装不上,ubuntu wsl版本的kernel也是奇奇怪怪,所以最直接的办法就是上真·双系统。那么说到安装双系统,这就是一个大坑,一不小心两个系统一起报废。
我的经验就是,安装的时候,1. 找另外一台电脑打开安装教程,然后仔仔细细的跟着做,不要瞎搞。2. 拔掉网线可以提升安装速度 3. 如果长期停在探测文件系统,可以参考这里,尝试sudo umount -l /isodevice
然后安装的流程,包括传统启动引导mbr和新版本启动引导ufei应该怎么装双系统,可以参考下面两个来源:
传统引导:
windows10安装ubuntu双系统教程(绝对史上最详细) - 不妨不妨,来日方长 - 博客园
ufei引导
Windows10安装ubuntu18.04双系统教程 - 不妨不妨,来日方长 - 博客园
关键的地方都是要实现准备好空间,备好一个独立的(200mb)的分区作为启动引导区
ubuntu下安装cuda及cudnn
主要参考tensorflow下面的这个说明,了解到需要依次安装显卡驱动,cuda以及cudnn,尤其需要注意的是各个组间推荐的版本,尽量依照推荐去安装以保证兼容性。
显卡驱动
在ubuntu下面可以使用系统的software update,参考这里去安装,因为是全gui操作,还是相当简单的(可能不会弄到最新的驱动,但是基本也可以满足需求了,tensorflow目前需要418以上版本)
cuda
cuda的安装可以参考cuda的官方文档。文档中Post-installation Actions部分需要注意照做,否则path跟不上。
不过总是export来export去的,每次开机都要重做一遍,所以最好写进~/.profile里面
${PATH:+:${PATH}}这个东西我没搞懂是什么意思,可能是根据原先path是否存在决定加不加冒号的
cudnn的安装就相对比较简单了,下载deb然后直接安装就好
Darknet的安装与运行
参考官方给出的知道其实就很简单
git clone https://github.com/pjreddie/darknet.git
cd darknet
make
默认是不带cuda的,如果你已经配置好了cuda的话可以在make以前编辑Makefile
, 然后把GPU从等于0改成等于1
一切正常的话,如果运行/.darknet
会返回usage: ./darknet <function>
,这就说明装成功了。
接下来需要下载yolo3的预训练weights,当然可以从官方给出的渠道下载,不过国内也有百度云的镜像,我觉得会快一点
顺带一提wget好像可以加个-c参数做续传,没试过不知道是不是这样。
关于这个weights要放在哪里,我一开始以为是应该放在cfg文件夹中,但其实如果仔细看一下这个运行命令
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
yolov3.weights
是应该放在软件根目录的。
这个图,可以算是AI之旅的一个Hello world了