文章目录


图片

作者丨伍天舟、马曾欧、陈信达

来源丨 Datawhale

编辑丨极市平台

极市导读

俗话说,环境配不对,学习两行泪。本文为保姆级别的教程,详细介绍了 Windows、Mac 和 Ubuntu 的深度学习环境配置方法及问题,帮助卡在环境配置的小伙伴们,解决入门难关。

入门深度学习,很多人经历了从入门到放弃的心酸历程,且千军万马倒在了入门第一道关卡:环境配置问题。俗话说,环境配不对,学习两行泪。

如果你正在面临配置环境的痛苦,不管你是 Windows 用户、Ubuntu 用户还是苹果死忠粉,这篇文章都是为你量身定制的。接下来就依次讲下 Windows、Mac 和 Ubuntu 的深度学习环境配置问题。

一、Windows 系统深度学习环境配置

系统:Win10 64 位操作系统

安装组合:Anaconda+PyTorch (GPU 版)+GTX1060

开源贡献:伍天舟,内蒙古农业大学

1.1 打开 Anaconda Prompt

1、conda create -n pytorch python=3.7.0:创建名为 pytorch 的虚拟环境,并为该环境安装 python=3.7。

2、activate pytorch:激活名为 pytorch 的环境

图片
1.2 确定硬件支持的 CUDA 版本

NVIDIA 控制面板 - 帮助 - 系统信息 - 组件

图片

2020 年 5 月 19 日 16:46:31,我更新了显卡驱动,看到我的 cuda 支持 11 以内的

1.3 确定 pytorch 版本,torchvision 版本

进入 pytorch 官网:https://pytorch.org/get-started/locally/

图片

因为官方源太慢了,这里使用清华源下载

1.4 镜像中下载对应的安装包

清华镜像:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/

pytorch:

图片

torchvision:

图片
1.5 本地安装

接着第一步,在 pytorch 环境下进行安装,依次输入如下指令。

图片
图片

然后回到虚拟环境所在目录,用 conda install anaconda 安装环境所需的基础包

图片
1.6 测试

代码 1:

1
2
3
4
from future import print_function
import torch
x = torch.rand(5, 3)
print(x)

输出类似于以下的张量:

图片

代码 2:

1
2
import torch
torch.cuda.is_available()

输出:True

如果以上两段代码输出无异常,表明环境搭建成功。

1.7 遇到的问题
  • 用下面命令创建虚拟环境报错
1
conda create -n py37_torch131 python=3.7
图片

【解决方法】https://blog.csdn.net/weixin_42329133/article/details/102640763

环境会保存在 Anaconda 目录下的 envs 文件夹内

  • PackagesNotFoundError: The following packages are not available from current channels
图片

【解决方法】:

https://www.cnblogs.com/hellojiaojiao/p/10790273.html

  • conda 下载太慢问题

【解决方案】https://mirror.tuna.tsinghua.edu.cn/help/anaconda/

我直呼一声清华 NB!

  • cuda 安装

cuda 历史版本下载:https://developer.nvidia.com/cuda-toolkit-archive

要看 NVIDIA 的组件,自己的 CUDA 支持哪个版本,我是 1060 显卡,所以我下的 10.0 版本的 cuda

图片
  • pytorch 安装

官网没有我的组合,我满脸问号

图片

这里我直接(别忘了先进入刚创建的环境)

1
conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
  • jupyter note 如何进入虚拟环境

python -m ipykernel install --name 虚拟环境名

1. 打开 Anaconda Prompt, 输入 conda env list 查看现有环境

2. 输入 activate name(name 是你想切换的环境)

3.conda install ipykernel 安装必要插件

4.python -m ipykernel install --name Name 将环境添加到 Jyputer 中(Name 是此环境显示在 Jyputer 中的名称,可自定义)

删除内核

jupyter kernelspec remove 内核名称

图片

报错 [Errono 13]

[Errno 13] Permission denied: ‘/usr/local/share/jupyter’

为此,需要添加–user 选项,将配置文件生成在本账户的家目录下。

1
python -m ipykernel install --user --name py27-caffe-notebook

至此,添加 kernel 完成。查看已有的 kernel:

1
jupyter kernelspec list

删除已有的 kernel

1
jupyter kernelspec remove kernelname

以上的命令删除仅仅是配置文件,并没有卸载相应虚拟环境的 ipykernel,因此若要再次安装相应 python 虚拟环境的 kernel,只需激活虚拟环境,然后

1
python -m ipykernel install --name kernelname
  • conda 安装一半总失败

把文件下载到本地,进入该文件的目录,然后用命令

1
conda install --offline 包名

二、Mac 深度学习环境配置

安装组合:Anaconda+PyTorch (GPU 版)

开源贡献:马曾欧,伦敦大学

2.1 安装 Anaconda

Anaconda 的安装有两种方式,这里仅介绍一种最直观的 - macOS graphical install。

https://www.anaconda.com/products/individual 里,Anaconda Installers 的位置,选择 Python 3.7 下方的 “64-Bit Graphical Installer (442)”。下载好

图片

pkg 安装包后点击进入,按下一步完成安装即可。默认安装地点为~/opt。想用 command line install 的,请自行参考:https://docs.anaconda.com/anaconda/install/mac-os/

2.2 确认下载情况
图片

在 Mac 的 Terminal 里,输入

1
python --version

确保安装的 Python 是 3.x 版本。在 Terminal 输入

1
jupyter notebook

弹出网页,即可进入 notebook。

图片

在网页右上角点击 Quit,或返回 Terminal,command + c,退出 notebook。

图片
2.2.1 常见问题

如果电脑中下载了多个 Anaconda,运行时可能出现冲突。在 Terminal 中输入

1
cd ~

返回 home 目录,输入

1
cat .bash_profile

如果只能看到一个 Anaconda 版本就没有问题。如果有多个则下载包时有可能

造成一定的冲突。用 vim、nano 或其他文本编辑器把旧版本 Anaconda 的

1
export PATH= ...

删除。

2.3 虚拟环境和包的下载

用 conda 去创建虚拟环境和下载对应的包是很简单的一件事。

2.3.1 Graphic

点击 Anaconda-Navigator,可以看到自己下载好的应用程序,左上角 “Applications on” 应该指向的是 “base (root)”,左边点击 “Environments” 就可以看到自己建立的虚拟环境和对应的包了。点击左下角的 Create 即可创建一个新的虚拟环境。

图片

输入环境名称和 python 的版本,点击 create 进行创建。

图片

之后在 Home 页面,确保左上角指向的是你刚刚创建的环境名,在这个环境下 install jupyter notebook,注意原本装的 notebook 是在 base 里的,不可通用。

回到 Environments 中,可以看到在此环境中的所有包,左上方选择 All,然后输入想要下载的包名

图片

然后选中进行下载

图片
2.3.2 Command Line

用 command line 完成以上的操作也很简洁。这次以 Pytorch 为例。在 Terminal 中输入

1
conda create --name env_name

就可以创建一个虚拟环境,叫 “env_name”。输入

1
conda env list

即可看到创建了的所有虚拟环境,其中打 * 的就是当前环境。输入

1
conda activate env_name

进入环境

1
conda deactivate

退出当前虚拟环境,进入 base。

2.3.3 下载 Pytorch

一般情况下 Mac 是不支持 CUDA 的。进入 https://pytorch.org/ 可以看到

图片

pytorch 官网显示当前设备应该用的下载语句。此情况,我的是

1
conda install pytorch torchvision -c pytorch

复制下来,粘贴到 Terminal 中运行就可以开始下载了。

下载完成后,在 Terminal 输入

1
python3

之后 import 两个刚下载的包,确认下载完成

1
2
3
4
5
import torch
import torchvision

print(torch.__version__)
print(torchvision.__version__)

如果 import 和输出正常,配置就完成了!输入

图片
1
quit()

就 ok 了。

2.4 额外情况

国内如果直接用 conda 下载,可能会很慢。可以换下载源进行加速。换源方法可参考下列资料中的 Linux 部分:https://zhuanlan.zhihu.com/p/87123943。

conda 下载中常会出现 “Solving environment: failed…” 的问题,如果正常创建虚拟环境,这位问题应该就是没有问题的,如果还发生,可以再创建一个虚拟环境。

conda 的社群很大,基本上遇到的问题很有可能有人遇到、有人解答,Google 会是一个很好的解决办法。

三、Ubuntu 深度学习环境配置

安装组合:Anaconda+PyTorch (CPU 版) 或 PyTorch (GPU 版)

开源贡献:陈信达,华北电力大学

3.1 Anacond 安装

Anaconda 和 Python 版本是对应的,所以需要选择安装对应 Python2.7 版本的还是 Python3.7 版本或其他版本的,根据自己的需要下载合适的安装包。

下载链接:https://www.anaconda.com/download/#linux

点击下面的 64-Bit (x86) Installer (522 MB),下载 64 位的版本。

图片

下载完后的文件名是:Anaconda3-2020.02-Linux-x86_64.sh。

cd 到 Anaconda3-2020.02-Linux-x86_64.sh 所在的目录:

图片

执行 bash Anaconda3-2020.02-Linux-x86_64.sh 开始安装:

图片

一直按回车直到如下界面,然后输入 yes:

图片

这里直接回车安装到默认路径,或者在 >>> 后输入自定义路径

图片

等待安装进度条走完,然后出现下面的提示,yes 是加入环境变量,no 是不加入环境变量,这里我们以输入 no 为例

图片

接下来手动加入环境变量,先 cd 到~,然后编辑.bashrc 文件:sudo vim .bashrc

图片

在最下面添加如下几行 (注意。后有空格):

1
2
3
4
5
# 区分anaconda python与系统内置python
alias python3="/usr/bin/python3.5"
alias python2="/usr/bin/python2.7"

. /home/cxd/anaconda3/etc/profile.d/conda.sh

然后按 esc + : + wq! 保存

图片

输入 source .bashrc 来执行刚修改的初始化文档

图片

下面输入 conda env list 来试试环境变量是否设置成功:

图片

试试刚刚设置的使用内置 python 的命令:python2、python3

图片

如果到这就结束的话,大家安装包的时候肯定会无比煎熬~这里需要将 anaconda 换一下源(加入清华源):

图片

然后我们创建一个名为 pytorch 的虚拟环境,发现报了下面的错误:

图片

原因是我们没有清除上次安装留下来的源,输入 sudo vim .condarc,修改该文件的内容(记得删除 default 那行):

图片

然后输入 source .condarc,再次创建虚拟环境:

图片
3.2 pytorch cpu 版本安装

打开 pytorch 官网:https://pytorch.org/

图片

激活刚刚创建的虚拟环境:conda activate pytorch 在安装之前先添加下面这个源:

1
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch

然后输入下面代码:

1
conda install pytorch torchvision cpuonly -c pytorch
图片

等到安装好后测试一下是否安装完成:

1
2
import torch
print(torch.__version__)

输出如下则安装成功:

图片
3.3 pytorch-gpu 安装
3.3.1 GPU 驱动安装
  • 检测显卡类型

执行命令:’ ubuntu-drivers devices’

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C8Dsv00001028sd0000086Fbc03sc02i00
vendor : NVIDIA Corporation
model : GP107M [GeForce GTX 1050 Mobile]
driver : nvidia-driver-390 - distro non-free
driver : nvidia-driver-435 - distro non-free
driver : nvidia-driver-440 - distro non-free recommended
driver : xserver-xorg-video-nouveau - distro free builtin

== /sys/devices/pci0000:00/0000:00:14.3 ==
modalias : pci:v00008086d0000A370sv00008086sd000042A4bc02sc80i00
vendor : Intel Corporation
model : Wireless-AC 9560 [Jefferson Peak]
manual_install: True
driver : backport-iwlwifi-dkms - distro free

大家可以看到,这里有个设备是 GTX1050。推荐安装驱动是 440。

  • 安装驱动

安装所有推荐驱动

1
sudo ubuntu-drivers autoinstall

安装一个驱动

1
sudo apt install nvidia-440
3.3.2 安装 cuda

cuda 安装需要对应合适的显卡驱动。下面是驱动和 cuda 的版本对应关系

1
2
3
4
5
6
7
8
9
10
11
12
13
Table 1. CUDA Toolkit and Compatible Driver Versions
CUDA Toolkit Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 10.2.89 >= 440.33 >= 441.22
CUDA 10.1 (10.1.105 general release, and updates) >= 418.39 >= 418.96
CUDA 10.0.130 >= 410.48 >= 411.31
CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26
CUDA 9.2 (9.2.88) >= 396.26 >= 397.44
CUDA 9.1 (9.1.85) >= 390.46 >= 391.29
CUDA 9.0 (9.0.76) >= 384.81 >= 385.54
CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51
CUDA 8.0 (8.0.44) >= 367.48 >= 369.30
CUDA 7.5 (7.5.16) >= 352.31 >= 353.66
CUDA 7.0 (7.0.28) >= 346.46 >= 347.62

cuda 下载链接:http://suo.im/6dY8rL

Installer Type 选择第一第二个都可。但是要在获得 cuda 文件后先检测 gcc 版本。下面以第一个 runfile (local) 安装方式为例。

  • 安装 gcc

linux 一般会自带了 gcc,我们先检测一下自己系统的 gcc 版本

1
gcc --version

而 cuda 的 gcc 依赖版本在官方文档的安装指南上会给出

图片
图片

如果版本和 cuda 依赖 gcc 不对应,就安装 cuda 需要的版本

1
2
sudo apt-get install gcc-7.0
sudo apt-get install g++-7.0

安装完成后需要更换系统 gcc 版本

1
2
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50

选择需要的版本

1
2
3
4
5
6
sudo update-alternatives --config gcc

选择 路径 优先级 状态------------------------------------------------------------
* 0 /usr/bin/gcc-9 50 自动模式
1 /usr/bin/g++-9 50 手动模式
2 /usr/bin/gcc-7 50 手动模式

输入前面显示的编号即可。

  • 安装 cuda
1
sudo sh cuda_你的版本_linux.run
  • 配置环境变量
1
sudo vim ~/.bashrc

将下面的命令复制进去

1
2
export PATH=/usr/local/cuda-10.2/bin${PATH:+:$PATH}}    
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

检查是否安装成功

1
nvcc -V
3.3.3 安装 cudnn

https://developer.nvidia.com/cudnn 选择对应 cuda 的版本即可

图片

然后将 cudnn 解压后的 include 和 lib64 文件夹复制到 cuda 中

1
2
3
sudo cp cuda/include/cudnn.h    /usr/local/cuda-10.2/include    #解压后的文件夹名字为cuda-10.2  
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h /usr/local/cuda-10.2/lib64/libcudnn*
3.3.4 安装 pytorch-gpu
图片

conda 安装:

1
2
# 选择自己对应的cuda版本
conda install pytorch torchvision cudatoolkit=10.2

pip 安装:

1
2
pip install torch torchvision -i  
https://pypi.mirrors.ustc.edu.cn/simple

四、写在最后

所有的深度学习环境安装指南到这里就结束了,希望能解决你面临的环境配置难题。关于实践项目,可以结合阿里天池的学习赛进行动手实践。

数据挖掘学习赛(进行中,5832 人参与)

https://tianchi.aliyun.com/competition/entrance/231784/forum

cv 实践学习赛(进行中,1933 参与)

https://tianchi.aliyun.com/competition/entrance/531795/forum

nlp 实践学习赛(进行中,573 人参与)

https://tianchi.aliyun.com/competition/entrance/531810/forum

× 请我吃糖~
打赏二维码