本教程首发自神力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.
- CUDA下载地址:https://developer.nvidia.com/cuda-downloads?
- CUDNN 下载地址:https://developer.nvidia.com/cudnn
有时间我分享一个cuda10.0和cudnn7.5的百度云盘备用链接,不过直接从英伟达官网下载速度也是杠杠的。
Pytorch
总最简单的开始。直接上官网安装:
https://pytorch.org/get-started/locally/
根据自己的系统版本选择对应的安装。这里注意几点:
- 最好用1.1。0,因为这是最新的稳定版本,不要用老版本了;
- 注意python版本和你用的cuda版本。
一般来说,使用pytorch比tensorflow简单一些。安装完成pytorch之后,再安装一下torchvision即可。
源码编译Pytorch
这部分不建议新手看,因为坑很深。我记录一下pytorch源码编译的过程。
- 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
- 如果出错了
如果出错,没有猜错的话可能的原因是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
简单的指导一下如何从源码编译tensorflow,有时候C++源码的tensorflow还是很有用的。那么要编译也很简单:
1. Install bazel
从bazel官网下载安装,请注意,**tensorflow只支持2.3版本的bazel,高版本的不支持。
2. Clone TensorFlow source
从tensorflow官方代码仓库克隆源代码。
3. 两个命令编译
./configure
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
OK. 差不多就行了,最好切换带相应的分支编译,不要从master开始编译。
caffe
这里再总结一下如何编译安装caffe。理论上来说,caffe的问题不是它的代码,它的代码其实很健壮,问题在于它的依赖。我见过最多的问题来自于:
- protobuf
- boost
我不告诉你安装步骤,你自己去官方编译,98%会出错,而且错误摸不到头脑。
其实我们MANA平台是有一个自己fork的caffe版本的,里面很多层比如FasterRCNN,RFCN,SSD,YOLO等的纯C++和CUDA支持。由于内部原因可能暂时不会开源。
但现在caffe维护最积极的应该还是BVLC的版本
git clone https://github.com/BVLC/caffe
具体步骤待更新。