超详细配置教程:用 Windows 电脑训练深度学习模型
作者丨Ahinand,编译丨机器之心
虽然大多数深度学习模型都是在 Linux 系统上训练的,但 Windows 也是一个非常重要的系统,也可能是很多机器学习初学者更为熟悉的系统。要在 Windows 上开发模型,首先当然是配置开发环境。Kaggle Master 及机器学习实践者 Abhinand 立足于自己的实践,给出了一种简单易行的 Windows 深度学习环境配置流程。
本文将介绍在 Windows 计算机上配置深度学习环境的全过程,其中涉及安装所需的工具和驱动软件。出人意料的是,即便只是配置深度学习环境,任务也不轻松。你很有可能在这个过程中犯错。我个人已经很多次从头开始配置深度学习环境了,但是通常是在对程序员更友好的操作系统 Linux 中。
而对于 Windows 操作系统,没有多少文章详细解释这一过程。所以我打算自己来试试。这些天,经过多次试错之后,我终于找到了解决方案。这个方法不仅能够配置成功,还比我见过的其它教程简单得多。
本教程为谁而写,以及为什么要用 Windows?
相信我,我自己也不喜欢在 Windows 上鼓捣 CUDA。但我们常常遇到这种情况:开发者经常需要在并非深度学习或程序开发专用的笔记本电脑或更强大的硬件上工作。在这种情况下,你并不总能避免使用 Windows。如果你遇到这种情况,或者正好拥有一台 Windows 计算机,又或者还不能熟练使用 Linux,那么这份指南肯定能帮到你。
本文包含以下内容:
- 硬件和软件的最低要求
- 安装 Python 和所需工具
- 设置开发环境
- 一些 GPU 术语
- 安装 GPU 驱动
- 安装 TensorFlow(CPU 和 GPU)
- 安装 PyTorch(CPU 和 GPU)
- 验证安装情况
- 我的个人经验和替代方法
硬件和软件的最低要求
如果你要按照本指南操作并且计划使用 GPU,你必须使用英伟达 GPU。
开发深度学习应用涉及到训练神经网络,这自然需要执行大量计算。也因此,我们需要越来越多的并行运算,而 GPU 正好能够满足我们的需求。这也是当前 GPU 需求旺盛的主要原因之一。大多数深度学习框架都自带 GPU 加速支持,这让开发者和研究者无需执行任何 GPU 编程就能在几分钟内使用 GPU 进行计算。
大部分这些框架都(只)支持 CUDA,而这只能在英伟达 GPU 上使用,这也是你需要使用英伟达 GPU 的原因。但是,使用 AMD 的 GPU 也不是不可能,相关信息可参阅:https://rocmdocs.amd.com/en/latest/。
不过,就算你没有 GPU,也依然可以继续本教程。但为了有效进行深度学习,至少你要有好用的 CPU、内存和存储空间。
我的硬件——笔记本电脑的配置如下:
- CPU——AMD Ryzen 7 4800HS 8C -16T@ 4.2GHz on Turbo
- RAM——16 GB DDR4 RAM@ 3200MHz
- GPU——Nvidia GeForce RTX 2060 Max-Q @ 6GB GDDR6 显存
对于硬件配置,我推荐至少使用 4 核 2.6 GHz 的 CPU、16GB 内存和 6GB 显存的英伟达 GPU。
另外,对于本教程,你当然需要使用 Windows 10 系统。我也假设你对 Python 软件包和环境具备基本认知。不管怎样,后面都会给出解释。
推荐使用的 Windows 版本是最新的 64 位 Windows 10 稳定版。
本教程假设你的操作系统是刚装好的,没有执行过额外的修改。不过只要你知道自己在做什么,依然可以参考本教程。
安装 Python 和所需工具
第一步当然是安装 Python。我建议使用 Mini-Conda 来安装 Python。先给刚入门的新手解释一下原因。
Conda 是一个软件包管理工具,可以帮助你安装、管理和移除各种不同的软件包。不过 Conda 并不是唯一的选择,还有 pip——这是我很喜欢的 Python 默认软件包管理工具。这里我们选择 Conda 的原因是在 Windows 上使用它更简单直接。
Anaconda 和 Mini-Conda 都是 Conda 的软件发行版,其中预安装了一些非常有用的数据科学 / 机器学习软件包,能节省很多时间。Anaconda 包含 150 多个在数据科学和机器学习中有用的软件包,基本上包含了你可能需要的一切,而 Mini-Conda 仅包含一些必需的工具和软件包。
我推荐使用 Mini-Conda,因为我喜欢对所安装的软件包有(几乎)完整的控制权。清楚地了解你所安装的东西完全不是坏事。当然这还能帮你节省一些存储空间,你也不会装上几十个你可能永远也用不上的奇怪软件包。
要安装 Mini-Conda,请访问:https://docs.conda.io/en/latest/miniconda.html
下载 Windows 64 位版本的 Python3 安装工具,然后像安装其它 Windows 软件一样安装它。一定要勾选询问你是否要将 Conda 和 Python 加入到 PATH 的勾选框。
现在你可以通过以下命令检查 Conda 和 Python 是否安装成功。如果安装成功,则会显示版本号;否则你可能需要再次正确安装 Mini-Conda 并将其加入到 PATH。
> python —versionPython
3.8.3
> conda —versionconda
4.8.4
下一步是安装 jupyter-notebook,请在命令行界面使用以下命令:
> conda install -y jupyter
你可以通过运行 jupyter notebook 来验证安装,这会帮你在浏览器上打开 Jupyter Notebook。
设置开发环境
这一步很重要,但很多人会忽视它。使用 Anaconda 这种包含所有已知软件包的工具是可以理解的,但如果要开发自己的项目,真正构建一些东西,你可能还是需要一个专门针对该项目或你的工作性质的定制开发环境。使用专门虚拟环境的另一大优势是你可以将软件包与全局设置隔离开。这样,就算你在该环境中使用软件包时搞错了,你也可以轻松地丢弃它们,而不对全局软件包产生任何影响。
这也能让你灵活地使用任何之前版本的 Python 创建环境。这样,你就可以避免使用那些还不稳定的新特性,之后再根据支持情况选择是否升级。
创建 Conda 环境还算简单。为了方便解释,我创建了一个名为 tensorflow 的环境,你可以将其改为任何名称。我将使用 Python 3.7,因为我知道 TensorFlow 对其有很好的支持。顺便一提,这将是安装 TensorFlow 的位置,我还会创建一个名为 torch 的环境来安装 PyTorch。
> conda create --name tensorflow python=3.7
环境创建完成之后,你可以使用以下命令进入该环境,其中的 tensorflow 只是我们之前提供给该环境的名称。
> conda activate tensorflow
进入环境之后,你会在提示框的左边看到类似这样的信息:
如果你没在 Powershell 上看到这个信息,那么你可能需要先在 Powershell 初始化 conda 一次:
> conda init powershell
然后,你可能会在左边看到 (base),如上图所示,此时你已不在任何环境中。之后,你再进入任何环境,你应该都会看见环境名。
此外,你还可以在环境中安装 nb 工具,并将其链接到我们之前安装的 Jupyter Notebook。
> conda install nb_conda
要将该环境注册到 Jupyter Notebook,可运行以下命令:
> python -m ipykernel install --user --name tensorflow --display-name “Python 3.7 (tensorflow)”
要退出 Conda 环境,则运行以下命令:
> conda deactivate
现在按照同样的步骤创建一个名为 torch 的环境:
> conda create --name torch python=3.7
> conda activate torch> conda install nb_conda