安装指南
学习如何配置运行 Jupyter Notebook 的环境。
官方代码仓库
本课程的官方代码仓库位于 GitHub。
每个章节对应一个 Jupyter Notebook 文件,文件中包含了该章节展示的所有代码。你可以按顺序运行这些代码单元,得到与课程中一致的结果。我坚信,能够复现结果将极大增强学习者的信心。
运行环境
你有三种方式来运行这些 Jupyter Notebook:
- Google Colab
- Binder
- 本地安装
下面我们简要分析每种方式的优缺点:
Google Colab
Google Colab “允许你在浏览器中编写和执行 Python 代码,无需任何配置,免费使用 GPU,并支持便捷共享。”
你可以通过 Colab 的特殊 URL 直接从 GitHub 加载 Notebook。只需输入 GitHub 用户名或组织名(例如作者 dvgodoy),系统就会列出其所有公开的仓库(如本课程的 PyTorchStepByStep)。
选择仓库后,系统还会列出其中可用的 Notebook 及对应的打开链接,可在新浏览器标签页中打开。
此外,你还可以获得 GPU 访问权限,这对于加速深度学习模型训练非常有用。更重要的是,如果你对 Notebook 做了修改,Colab 会自动保存这些更改。整个设置过程非常方便。唯一的不足之处在于:
- 你需要登录 Google 账号。
- 对于不在 Colab 默认配置中的 Python 包,你需要手动(重新)安装。
Binder
Binder “允许你创建可共享的自定义计算环境,供多位远程用户使用。”
你也可以直接从 GitHub 加载 Notebook,但流程略有不同。Binder 会创建一个类似“虚拟机”(技术上是一个容器),克隆指定的仓库,并启动 Jupyter。这样你就可以在浏览器中访问 Jupyter 主页,体验与本地运行几乎一致的操作界面,但所有操作都在 Binder 的服务器端完成。
只需访问 Binder 的 网站,输入你想探索的 GitHub 仓库 URL,然后点击 Launch 按钮。构建镜像并打开 Jupyter 主页可能需要几分钟时间。
你也可以通过以下链接直接为本课程仓库启动 Binder:
Binder 非常便捷,无需预先进行任何设置。如果仓库作者提供了所需依赖,Binder 会在启动时自动安装所需的 Python 包。
但另一方面,启动过程可能较慢,且会话结束后你的修改不会被保留。请务必下载你修改过的 Notebook 文件。
本地安装
这种方式灵活性最高,但需要更多前期配置工作。我鼓励你尝试自己搭建开发环境。虽然一开始看起来有些复杂,但只要遵循以下七个简单步骤即可完成:
检查清单:
- 安装 Anaconda。
- 创建并激活一个 虚拟环境。
- 安装 PyTorch 包。
- 安装 TensorBoard 包。
- 安装 GraphViz 软件和 TorchViz 包(可选)。
- 安装 git 并 克隆 代码仓库。
- 启动 Jupyter Notebook。
1. Anaconda
如果你尚未安装 Anaconda 个人版,现在是时候安装了。这是一个非常便捷的起点,因为它包含了数据科学家开发和训练模型所需的大多数 Python 库。
请根据你的操作系统参考相应的安装指南:
> 请确保选择 **Python 3.X** 版本,因为 Python 2 已于 2020 年 1 月停止维护。
安装完 Anaconda 后,接下来创建独立的环境。
2. Conda(虚拟)环境
虚拟环境是一种将不同项目所使用的 Python 安装及其库相互隔离的便捷方式。
> “什么是环境?”
它本质上是对 Python 及其部分(或全部)库的一次复制。因此,你的电脑上最终会存在多个独立的 Python 安装。
它本质上是对 Python 及其部分(或全部)库的一次复制。因此,你的电脑上最终会存在多个独立的 Python 安装。
> 你可能会问:“为什么不能只用一个 Python 安装来处理所有项目?”
由于存在大量独立开发的 Python 库,每个库又有多个版本,而每个版本又依赖其他库的不同版本,很容易导致依赖冲突,使问题迅速失控。
由于存在大量独立开发的 Python 库,每个库又有多个版本,而每个版本又依赖其他库的不同版本,很容易导致依赖冲突,使问题迅速失控。
本文不深入探讨这些问题,但请相信我(或自行搜索了解),养成每个项目使用独立环境的习惯将大大受益。
> “如何创建一个环境?”
首先,你需要为环境命名。我们将其命名为 pytorchbook(或其他便于记忆的名称)。然后,在 Ubuntu 上打开终端,或在 Windows/macOS 上打开 Anaconda Prompt,输入以下命令:
首先,你需要为环境命名。我们将其命名为 pytorchbook(或其他便于记忆的名称)。然后,在 Ubuntu 上打开终端,或在 Windows/macOS 上打开 Anaconda Prompt,输入以下命令:
如下所示:
1# 创建 conda 环境 2conda create -n pytorchbook anaconda
上述命令将创建一个名为 pytorchbook 的 conda 环境,并包含所有 Anaconda 包(此时可以去喝杯咖啡,安装过程可能需要一段时间)。若想了解更多关于创建和使用 conda 环境的信息,请查阅 Anaconda 的 管理环境 用户指南。
环境创建完成后,接下来需要激活它,即让该 Python 环境生效。在同一个终端(或 Anaconda Prompt)中输入:
1# 激活 conda 环境 2conda activate pytorchbook
你的命令行提示符应显示如下(Linux 系统):
1# Linux 提示符 2(pytorchbook)$
或如下所示(Windows 系统):
1# Windows 提示符 2(pytorchbook)C:\>
完成!你现在正在使用一个全新的 conda 环境。每次打开新终端时都需要重新激活该环境。如果你使用的是 Windows 或 macOS,可以直接打开对应的 Anaconda Prompt(此时会显示为 Anaconda Prompt (pytorchbook)),它会自动激活该环境。
> **重要提示**:从现在起,我假设你每次打开终端或 Anaconda Prompt 时都会激活 `pytorchbook` 环境。后续所有安装步骤都必须在该环境中执行。
3. PyTorch
PyTorch 是目前最受欢迎的深度学习框架,前提是你没有跳过前面的介绍。
它是“一个开源的机器学习框架,可加速从研究原型到生产部署的进程。” 听起来不错吧?其实到了这一步,我可能已经不需要再向你推荐了。
是时候安装这个主角了。我们可以直接访问其官网的 本地开始 页面,系统会自动为你本地环境推荐合适的选项,并给出对应的安装命令。
其中一些选项包括:
- PyTorch 构建版本:始终选择 Stable(稳定版)。
- 包管理工具:此处假设你使用 Conda。
- 语言:显然是 Python。
剩下两个选项是你的 操作系统 和 CUDA 支持。
> “什么是 CUDA?”
使用 GPU / CUDA
CUDA 是 NVIDIA 开发的并行计算平台和编程模型,用于在图形处理器(GPU)上进行通用计算。
如果你的计算机配有 GPU(通常是 GeForce 显卡),就可以利用其强大的算力,显著加快深度学习模型的训练速度,远超 CPU 的性能。在这种情况下,你应该选择支持 CUDA 的 PyTorch 安装版本。
但这还不够。如果你尚未安装,还需要更新显卡驱动、CUDA Toolkit 以及 CUDA 深度神经网络库(cuDNN)。遗憾的是,CUDA 的详细安装说明超出了本课程的范围。
使用 GPU 的优势在于,你可以更快地迭代实验,尝试更复杂的模型和更广泛的超参数组合。
以我们为例,假设使用 Linux 系统,并希望安装 CUDA 10.2 版本。那么在激活环境后,需在终端运行以下命令:
1# 在 Linux 上安装 PyTorch 2(pytorchbook)$ conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
仅使用 CPU
如果你没有 GPU,则应为 CUDA 选择“None”。
> “没有 GPU 能运行代码吗?”
当然可以!本课程中的代码和示例设计时已考虑到所有读者的需求,确保大家都能顺利跟进。某些示例可能对计算资源要求稍高,但在 CPU 上也只需几分钟,不会耗时数小时。如果没有 GPU,不必担心。此外,当你需要临时使用 GPU 时,随时可以切换到 Google Colab!
如果我在 Windows 上且无 GPU,则需在 Anaconda Prompt (pytorchbook) 中运行以下命令:
1# 在 Windows 上安装 PyTorch 2(pytorchbook) C:\> conda install pytorch torchvision cpuonly -c pytorch
安装 CUDA
**CUDA**:为 GeForce 显卡安装驱动、NVIDIA 的 cuDNN 以及 CUDA Toolkit 可能较为复杂,具体步骤取决于你的显卡型号和操作系统。
安装 GeForce 驱动,请访问其 官网,选择你的操作系统和显卡型号,并按照说明进行安装。
安装 NVIDIA 的 CUDA 深度神经网络库(cuDNN),需在此 链接 注册。
安装 CUDA Toolkit,请根据你的操作系统选择本地安装程序或可执行文件。
macOS:如果你使用 macOS,请注意 PyTorch 的预编译包不支持 CUDA。这意味着如果你想使用 GPU,必须从源码编译安装 PyTorch,这一过程较为复杂。如不想如此麻烦,可参考此 链接 的说明,选择不启用 CUDA,依然可以顺利运行本课程的代码。
4. TensorBoard
TensorBoard 是 TensorFlow 的可视化工具包,“提供机器学习实验所需的可视化功能和工具。”
TensorBoard 功能强大,即使你使用 PyTorch 开发模型,也可以使用它。幸运的是,你无需安装完整的 TensorFlow,只需通过 conda 单独安装 TensorBoard。在激活环境后,在终端或 Anaconda Prompt 中运行以下命令即可:
1# 安装 TensorBoard 2(pytorchbook)$ conda install -c conda-forge tensorboard
5. GraphViz 和 torchviz(可选)
> 此步骤为可选,主要是因为 GraphViz 的安装有时较困难(尤其是在 Windows 上)。如果因任何原因未能成功安装,或你决定跳过此步骤,仍可运行本课程中的大部分代码。唯一例外是在“简单回归问题”章节的“动态计算图”部分,有少数单元格用于生成模型结构图。
GraphViz 是一款开源的图可视化软件,“可用于将结构化信息表示为抽象图和网络的示意图。”
我们需要安装 GraphViz 才能使用 TorchViz,这是一个简洁的工具包,可用于可视化模型结构。请参考此 链接 中针对你操作系统的安装说明。
> 如果你使用 Windows,请从此 [链接](https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi) 下载 GraphViz 的 Windows 安装包。
你还需将 GraphViz 添加到 PATH(环境变量)中。通常,GraphViz 的可执行文件位于
C:\ProgramFiles(x86)\Graphviz2.38\bin。找到路径后,需相应地设置或更新 PATH,将其加入其中。
更多操作细节,请参考 如何添加到 Windows PATH 环境变量。
如需进一步帮助,还可查阅 “如何安装 Graphviz 软件” 指南。
安装完 GraphViz 后,即可安装 torchviz 包。该包不在 Anaconda 发行版仓库 中,仅在 PyPI(Python 包索引)提供,因此需使用 pip install 安装。
再次打开终端或 Anaconda Prompt(激活环境后),运行以下命令:
1# 安装 torchviz 2(pytorchbook)$ pip install torchviz
可通过以下 Python 代码测试 GraphViz/TorchViz 是否安装成功:
1import torch 2from torchviz import make_dot 3v = torch.tensor(1.0, requires_grad=True) 4print(make_dot(v))
如果出现任何错误(如下图所示为常见错误),说明 GraphViz 安装仍有问题。
6. Git
在此指南中详细介绍版本控制及其最流行的工具 git 已超出范围。如果你已熟悉 git,那太好了,可直接跳过本节!
否则,建议你抽空学习一下,这对今后非常有帮助。目前,我仅介绍最基本的操作,以便你使用 git 克隆本课程的代码仓库,获得本地副本,自由修改和实验。
首先需要安装 git。前往其 下载页面,根据你的操作系统完成安装。安装完成后,打开一个新的终端或 Anaconda Prompt(可关闭之前的窗口)。在新终端中,你应该可以正常运行 git 命令。
要克隆本课程的仓库,只需运行:
1# 克隆仓库 2(pytorchbook)$ git clone https://github.com/dvgodoy/PyTorchStepByStep.git
该命令将创建一个名为 PyTorchStepByStep 的文件夹,其中包含 GitHub 仓库中的所有内容的本地副本。
conda install 与 pip install
尽管两者看似等效,但在使用 Anaconda 及其虚拟环境时,应优先使用 `conda install` 而非 `pip install`。
原因在于
conda install能识别当前激活的虚拟环境,仅在该环境中安装包。而若使用pip install,且当前环境未安装pip,则会回退到 全局 pip,而这通常不是你想要的结果。
为何不行?回想前文提到的依赖管理问题?这就是原因!conda安装器会管理其仓库内的所有包,并跟踪它们之间复杂的依赖关系(欲深入了解,请查看此 链接)。
想了解更多conda与pip的区别,可阅读 理解 Conda 与 Pip。
一般原则:优先尝试conda install,若 conda 仓库中不存在该包(如torchviz),再回退使用pip install。
7. Jupyter
克隆仓库后,进入 PyTorchStepByStep 文件夹。在该目录下,只需在终端或 Anaconda Prompt 中启动 Jupyter:
1(pytorchbook)$ jupyter notebook
浏览器将自动打开,显示 Jupyter 主页,其中列出了仓库中的所有 Notebook 和代码文件。
继续前行
无论你选择上述三种环境中的哪一种,现在你都已经准备就绪,可以一步步开始构建你的第一个 PyTorch 模型了!