前置知识: AI工程

Jupyter笔记本

00:00
10 min Beginner

安装和启动 JupyterLab,使用魔法命令进行基准测试和可视化,区分笔记本与脚本的使用场景,避免常见笔记本陷阱

Jupyter 笔记本

笔记本是 AI 工程的实验台。你在这里做原型,然后把可行的部分移到生产环境。

类型: 构建 语言: Python 前置条件: 阶段 0,第 01 课 预计时间: ~30 分钟

学习目标

  • 安装和启动 JupyterLab、Jupyter Notebook 或带 Jupyter 扩展的 VS Code
  • 使用魔法命令(%timeit%%time%matplotlib inline)进行基准测试和内联可视化
  • 区分何时使用笔记本、何时使用脚本,践行”笔记本中探索,脚本中交付”的工作流
  • 识别和避免常见笔记本陷阱:乱序执行、隐藏状态和内存泄漏

问题所在

每篇 AI 论文、每个教程、每场 Kaggle 比赛都使用 Jupyter 笔记本。它们让你分段运行代码、内联查看输出、混合代码与说明、快速迭代。如果你不用笔记本来学 AI,就像做数学作业没有草稿纸。

但笔记本也有真正的陷阱。人们用它做所有事情,包括它不擅长的事情。知道何时用笔记本、何时用脚本,能让你免受调试噩梦。

核心概念

笔记本是一个单元格列表。每个单元格要么是代码,要么是文本。

内核是一个在后台运行的 Python 进程。当你运行一个单元格时,它将代码发送给内核,内核执行代码并返回结果。所有单元格共享同一个内核,因此变量在单元格之间持久存在。

“按你点击的顺序运行”既是超能力,也是踩脚枪。

动手构建

第 1 步:选择你的界面

三种界面,一种格式:

界面安装适用于
JupyterLabpip install jupyterlab 然后 jupyter lab完整 IDE 体验,多标签页,文件浏览器,终端
Jupyter Notebookpip install notebook 然后 jupyter notebook简单轻量,一次一个笔记本
VS Code安装 “Jupyter” 扩展已在你的编辑器中,git 集成,调试

三种界面读写相同的 .ipynb 文件。选你喜欢的。JupyterLab 在 AI 工作中最常用。

pip install jupyterlab
jupyter lab

第 2 步:重要的键盘快捷键

你在两种模式下操作。按 Escape 进入命令模式(左侧蓝色条),按 Enter 进入编辑模式(绿色条)。

命令模式(最常用的):

按键操作
Shift+Enter运行单元格,移到下一个
A在上方插入单元格
B在下方插入单元格
DD删除单元格
M转为 Markdown
Y转为代码
Z撤销单元格操作
Ctrl+Shift+H显示所有快捷键

编辑模式:

按键操作
Tab自动补全
Shift+Tab显示函数签名
Ctrl+/切换注释

Shift+Enter 是你每天会用上千次的快捷键。先学这个。

第 3 步:单元格类型

代码单元格运行 Python 并显示输出:

import numpy as np
data = np.random.randn(1000)
data.mean(), data.std()

输出:(0.0032, 0.9987)

Markdown 单元格渲染格式化文本。用它们记录你在做什么以及为什么。支持标题、粗体、斜体、LaTeX 数学公式($E = mc^2$)、表格和图片。

第 4 步:魔法命令

这些不是 Python。它们是 Jupyter 特有的命令,以 %(行魔法)或 %%(单元格魔法)开头。

计时你的代码:

%timeit np.random.randn(10000)

输出:45.2 us +/- 1.3 us per loop

%%time
model.fit(X_train, y_train, epochs=10)

输出:Wall time: 2.34 s

%timeit 多次运行代码取平均值。%%time 只运行一次。微基准测试用 %timeit,训练运行用 %%time

启用内联图表:

%matplotlib inline

每个 plt.plot()plt.show() 现在都直接在笔记本中渲染。

不离开笔记本安装包:

!pip install scikit-learn

! 前缀可以运行任何 shell 命令。

检查环境变量:

%env CUDA_VISIBLE_DEVICES

第 5 步:内联显示富输出

笔记本自动显示单元格中最后一个表达式。但你可以控制它:

import pandas as pd

df = pd.DataFrame({
    "model": ["Linear", "Random Forest", "Neural Net"],
    "accuracy": [0.72, 0.89, 0.94],
    "training_time": [0.1, 2.3, 45.6]
})
df

这会渲染一个格式化的 HTML 表格,而不是文本转储。图表也一样:

import matplotlib.pyplot as plt

plt.figure(figsize=(8, 4))
plt.plot([1, 2, 3, 4], [1, 4, 2, 3])
plt.title("Inline Plot")
plt.show()

图表直接显示在单元格下方。这就是笔记本主导 AI 工作的原因。你可以同时看到数据、图表和代码。

显示图片:

from IPython.display import Image, display
display(Image(filename="architecture.png"))

第 6 步:Google Colab

Colab 是云端的免费 Jupyter 笔记本。它提供 GPU、预安装的库和 Google Drive 集成。无需配置。

  1. 访问 colab.research.google.com
  2. 上传本课程的任何 .ipynb 文件
  3. 运行时 > 更改运行时类型 > T4 GPU(免费)

Colab 与本地 Jupyter 的区别:

  • 文件在会话之间不持久(保存到 Drive 或下载)
  • 预安装:numpy, pandas, matplotlib, torch, tensorflow, sklearn
  • from google.colab import files 上传/下载文件
  • from google.colab import drive; drive.mount('/content/drive') 持久存储
  • 免费版会话在 90 分钟不活动后超时

实际应用

笔记本 vs 脚本:何时用哪个

用笔记本用脚本
探索数据集训练流水线
原型开发模型可复用工具
可视化结果任何需要 if __name__ 的场景
解释你的工作定时运行的代码
快速实验生产代码
课程练习包和库

原则:笔记本中探索,脚本中交付

AI 中的常见工作流:

  1. 在笔记本中探索数据
  2. 在笔记本中做模型原型
  3. 一旦可行,将代码移到 .py 文件
  4. .py 文件导入回笔记本进行进一步实验

常见陷阱

乱序执行。 你先运行单元格 5,然后单元格 2,然后单元格 7。笔记本在你的机器上能工作,但别人从头到尾运行就出问题。修复方法:分享前执行 Kernel > Restart & Run All。

隐藏状态。删除了一个单元格,但它创建的变量仍在内存中。笔记本看起来很干净,但依赖于一个幽灵单元格。修复方法:定期重启内核。

内存泄漏 加载一个 4GB 的数据集,训练一个模型,再加载另一个数据集。什么都没释放修复方法:del variable_namegc.collect(),或者重启内核

交付成果

本课程产出:

  • outputs/prompt-notebook-helper.md 用于调试笔记本问题

练习

  1. 打开 JupyterLab,创建一个笔记本,使用 %timeit 比较推导式和 numpy 创建 100,000 个随机数的数组
  2. 创建一个Markdown 和代码单元格的笔记本,加载 CSV、显示 DataFrame、绘制图表。然后运 Kernel > Restart & Run All 验证到尾都能工作
  3. code/notebook_tips.py 中的代码粘贴到 Colab 笔记本中,使用免费 GPU 运

关键术语

术语通俗说法实际含义
Kernel”运我代码的那个东西”一个独立的 Python 进程执行格并将变量存在内存中
Cell代码块笔记本中可独立运单元,可以是代码或 Markdown
Magic command”Jupyter 技巧”%%%特殊命令,控制笔记本环境
.ipynb”笔记本文件单元格输出元数据JSON 文件。全称 IPython Notebook

延伸阅读

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式