跳到正文

第1章 深度学习环境与工具

1. conda

conda 是一个 环境管理器 + 包管理器

你可以把它理解成:给不同项目创建独立的“Python 工作房间”。

比如你现在有:

bash
(base)

这是 conda 默认房间。

你刚才创建了:

bash
(d2l-zh)

这是专门给深度学习/D2L 用的房间。

为什么需要 conda?

因为不同项目需要的 Python 版本和库版本可能不一样。比如:

text
项目 A:需要 Python 3.8 + 旧版 PyTorch
项目 B:需要 Python 3.11 + 新版 PyTorch
项目 C:需要 TensorFlow

如果全部装在同一个 Python 里,很容易冲突。conda 的作用就是把它们隔离开。

你现在执行的:

bash
conda create -n d2l-zh python=3.11 pip -y

意思是:

text
创建一个叫 d2l-zh 的独立环境
里面使用 Python 3.11
并安装 pip
-y 表示自动确认

然后:

bash
conda activate d2l-zh

意思是:

text
进入 d2l-zh 这个环境

进入之后,你再安装:

bash
pip install torch d2l jupyter

这些库就只装进 d2l-zh,不会污染其他项目。

最常用命令就这几个:

bash
conda env list          # 查看已有环境
conda activate d2l-zh   # 进入环境
conda deactivate        # 退出当前环境
conda env remove -n d2l-zh  # 删除环境

你现在只需要记住一句话:以后学 D2L / 深度学习之前,先打开 Terminal,执行 conda activate d2l-zh。

然后再运行:

bash
cd ~/pytorch
jupyter notebook

2. Jupyter Notebook

Jupyter Notebook 是一个“浏览器里的 Python 代码本”,即一页电子笔记 = 文字说明 + Python 代码 + 运行结果 + 图表

D2L《动手学深度学习》用它,是因为深度学习最适合边看理论、边运行代码、边观察结果。

先确认你在环境里:

bash
conda activate d2l-zh

然后进入 PyTorch 版 D2L 文件夹:

bash
cd ~/pytorch

启动 Jupyter:

bash
jupyter notebook

执行后,Terminal 不要关。浏览器会自动打开一个页面,地址通常类似:

text
http://localhost:8888/tree

这个页面就是 Jupyter 的文件管理器。

进去后按这个路径点:

text
chapter_preliminaries
→ ndarray.ipynb

.ipynb 就是 Notebook 文件。

打开后你会看到一格一格的内容。每一格叫一个 cell。

主要有两种 cell:

text
Markdown cell:文字说明,不是代码
Code cell:Python 代码,可以运行

运行当前 cell 的快捷键是:

text
Shift + Enter

意思是:运行当前格,并跳到下一格。

你第一次学的时候,只需要做三件事:

text
1. 从上到下读
2. 每个代码格按 Shift + Enter 跑一遍
3. 看输出结果和书里解释是否一致

例如你看到这种代码格:

python
import torch

x = torch.arange(12)
x

Shift + Enter 后,下面会输出:

text
tensor([0, 1, 2, ..., 11])

这说明代码运行成功。

你可以改代码试验,比如把:

python
torch.arange(12)

改成:

python
torch.arange(20)

再按 Shift + Enter,观察结果变化。深度学习一定要这样学,不能只看。

常用操作:

text
Shift + Enter:运行当前 cell
A:在上方新建 cell
B:在下方新建 cell
DD:删除当前 cell,连续按两次 D
Command + S:保存
Kernel → Restart:重启 Python 内核
Kernel → Restart & Run All:重启并从头运行全部代码

注意:Jupyter Notebook 不是“普通网页”。它背后连接的是你本机的 Python。你在 Notebook 里运行:

python
import torch

用的就是你刚才安装在 d2l-zh 环境里的 PyTorch。

所以 Terminal 必须保持开着。你关掉 Terminal,Jupyter 服务就停了。

3. torch

torchPyTorch 这个深度学习库在 Python 代码里的名字

也就是说:

python
import torch

意思是:把 PyTorch 这个库导入进来,后面就可以用它做深度学习计算。

你可以先把它理解成:torch 是一个专门用来处理“张量”和“神经网络训练”的工具箱。

最核心的功能有 4 个。

第一,创建和操作张量。张量可以先理解成“多维数组”:

python
import torch

x = torch.tensor([1, 2, 3])
print(x)

输出:

text
tensor([1, 2, 3])

第二,做矩阵计算。深度学习里面大量计算都是矩阵乘法、加法、求和:

python
x = torch.arange(12)
x = x.reshape(3, 4)
print(x)

第三,自动求导。深度学习训练模型时,需要计算梯度,PyTorch 可以自动算:

python
x = torch.tensor(2.0, requires_grad=True)
y = x ** 2
y.backward()

print(x.grad)

这里 x.grad 就是梯度。

第四,搭建神经网络。后面你会看到:

python
from torch import nn

net = nn.Linear(2, 1)

nn 是 PyTorch 里专门用来搭神经网络层的模块。

所以你现在记住一句话:

text
torch = PyTorch 的主库,用来创建张量、做矩阵计算、自动求导、训练神经网络。

评论区

可以在这里补充理解、提问,或记录这一章的讨论。