本教程首发自神力AI社区,转载请保留出处,谢谢合作!太阳系最大的AI代码市场:http://manaai.cn

装环境是最头疼的一件事情。很多时候会遇到莫名其妙的问题。这篇文章推荐深度学习入门者看,主要是如何搭建标准的深度学习环境。我们从容易到难,逐渐叫大家如何构建,内容将包括目前比较主流的所有深度学习框架。其中也将包括不同的平台,比如windows,linux,macos。

CUDA

从最麻烦,也是最基础的开始,加入你没有cuda设备,可以忽略这一步。如果你有显卡,如果支持cuda,那么可以安装一下cuda驱动,开始你的深度学习之旅。

网上很多教程,要么很老,要么按部就班,大家按照步骤装完了发现一对错误。本质上是没有事先告诉大家在装之前可能会踩的坑。这里我作为过来人,给新手总结一些要点:

  • 本教程会一直更新,目前最新的是cuda10,我建议直接安装cuda10.0,不要整什么cuda10.1或者10.2. 下面会告诉大家为什么;
  • cuda安装去英伟达官网下载,不要选择最新的,从legacy里面选择历史版本,然后下载对应平台的,windows下好办,直接exe,linux下选择.run文件;
  • cudnn要实现注册英伟达账号,下载那个tar.gz的压缩包,解压出来就是头文件和动态链接库,拷贝到cuda对应目录即可,非常简单。
  • 运行.run文件的时候,不要安装它自带的驱动,也不要安装opengl。

其中最重要的是最后一点,CUDA和英伟达驱动是两个东西, 很多人装完cuda就觉得驱动装完了,结果进不去桌面。这里我建议新手一定要:在安装cuda之前,先把英伟达驱动安装了.

nvidia的driver安装也很简单,以ubuntu为例子,直接添加源,然后 sudo apt install nvidia-driver-410 即可。主要CUDA10一般用的是410.

有时间我分享一个cuda10.0和cudnn7.5的百度云盘备用链接,不过直接从英伟达官网下载速度也是杠杠的。

Pytorch

总最简单的开始。直接上官网安装:
https://pytorch.org/get-started/locally/

c382f472-2b7f-49a7-82b1-e627d5ed3149-image.png

根据自己的系统版本选择对应的安装。这里注意几点:

  • 最好用1.1。0,因为这是最新的稳定版本,不要用老版本了;
  • 注意python版本和你用的cuda版本。

一般来说,使用pytorch比tensorflow简单一些。安装完成pytorch之后,再安装一下torchvision即可。

源码编译Pytorch

这部分不建议新手看,因为坑很深。我记录一下pytorch源码编译的过程。

  1. git clone pytorch
    首先clonepytorch。注意有submodules,要init
git clone http://github.com/pytorch/pytorch
cd pytorch
git submodule update --init --recursive
# 此时会有thirdparty的库被pull下来
mkdir build_libtorch
cd build_libtorch
python ../tools/build_libtorch.py
  1. 如果出错了
    如果出错,没有猜错的话可能的原因是multidefine什么东西,这个是MKLDNN造成的,解决的办法就是disbale掉它,并且关闭test:
export USE_MKLDNN=0
export BUILD_TEST=0

在编译的时候export一下即可。
一般情况下就可以成功编译libtorch,把你编译的库,全部替换掉官方的lib,你的lib就可以用新的ABI了。

好像就没了。。。
源码编译pytorch原因主要是两个:

  • 官方的libtorch用的是gcc4.9编译的,而且使用很老的ABI;
  • 源码编译可以加深你对这个库的理解。

TensorFlow

tensorflow的安装和编译目前来说还不是那么的蛋疼,加入你成功的安装了cuda和cudnn,那么直接从pip安装gpu版本的问题不大。大家注意两点:

  • 不建议用anaconda,我在年轻的时候也用anaconda,那时原因是实验室网速慢,pip慢,甚至还不会换源,假如你看到这篇博客,说明你比那个时候的我要强,可以不用anaconda了。
  • 直接从pip安装,如果你要老版本,那就1.19,如果你要tensorflow2.0,那就安装beta版本。

源码编译TensorFlow

这个坑比较深,按下先不填。

caffe

这里再总结一下如何编译安装caffe。理论上来说,caffe的问题不是它的代码,它的代码其实很健壮,问题在于它的依赖。我见过最多的问题来自于:

  • protobuf
  • boost

我不告诉你安装步骤,你自己去官方编译,98%会出错,而且错误摸不到头脑。
其实我们MANA平台是有一个自己fork的caffe版本的,里面很多层比如FasterRCNN,RFCN,SSD,YOLO等的纯C++和CUDA支持。由于内部原因可能暂时不会开源。
但现在caffe维护最积极的应该还是BVLC的版本

git clone https://github.com/BVLC/caffe

具体步骤待更新。