
视频元信息
- 章节:第二周 2.17 Jupyter iPython 笔记本的快速浏览
- 时长:约 3 分 40 秒(220 秒左右)
- 类型:工具操作指导 / 编程环境入门
内容摘要(TL;DR)
本节是吴恩达对 Jupyter Notebook 编程环境的快速操作指导,涵盖代码单元格的运行方式(Shift+Enter 或菜单 Cell→Run Cell)、Markdown 单元格误双击后的还原方法、内核(Kernel)崩溃后的重启操作、多代码块必须按顺序执行的注意事项,以及作业提交按钮的使用,最后提示后续有一个关于逻辑回归代价函数的可选视频。
一、代码单元格的运行与作业填写规范 [00:30]
本节介绍 Jupyter Notebook 中最基础的操作:如何运行一个代码单元格,以及编程作业中代码填写的位置规范。
要点总结:
- 编程作业中,需要你填写代码的位置会有明确标记:
### START CODE HERE ###与### END CODE HERE ###,你的代码必须写在两者之间。 - 运行单元格的方式有两种:键盘快捷键
Shift + Enter,或点击菜单栏 Cell → Run Cell。 - 吴恩达演示了在标记之间写入
print("hello world"),随后按 Shift+Enter,输出区即打印出hello world。
易错点: 在 Coursera 的 Jupyter Notebook 中,代码必须严格写在
START CODE HERE和END CODE HERE之间,写在标记之外的代码不会被评分系统识别,可能导致作业判分失败。
理解:Jupyter Notebook 的单元格(Cell)本质是一个可独立执行的代码块,每个单元格共享同一个内核(Kernel)的内存空间,因此后面单元格可以引用前面单元格定义的变量。这一点与普通 .py 脚本"从头到尾一次性执行"的模式不同,也是新手最容易困惑的地方。
二、快捷键差异与 Markdown 单元格的还原 [01:03]
本节讲解运行单元格的快捷键在不同系统上的差异,以及误操作把说明文字变成 Markdown 源码后如何恢复。
要点总结:
- 运行单元格的快捷键在不同电脑上可能不同,但吴恩达本人在 Mac 和 PC 上均为
Shift + Enter,建议学员自行确认。 - 阅读作业说明时,如果不小心双击了说明文字单元格,它会从渲染后的漂亮排版变成原始的 Markdown 源码(一堆带
#、*等符号的"奇怪文本")。 - 恢复方法:选中该单元格,执行 Cell → Run Cell 或按
Shift + Enter,Markdown 会被重新渲染回正常排版。
易错点: 双击 Markdown 单元格进入的是"编辑模式",此时看到的是源码而非渲染结果。这不是文件损坏,也不是你改坏了什么,只要重新运行该单元格(Shift+Enter)即可恢复显示。切勿在编辑模式下手动删除或乱改说明文字。
思考:Markdown 单元格与 Code 单元格的区别在于,前者运行后是"渲染"(把标记语言转成排版),后者运行后是"执行"(把 Python 代码交给内核运算)。理解这一点,就能明白为什么"运行 Markdown 单元格"这个操作看起来很奇怪但确实有效。
三、内核(Kernel)的概念与崩溃后的重启 [01:40]
本节是技术原理最核心的部分,解释了 Notebook 代码实际在哪里运行,以及内核挂掉后的处理办法。
要点总结:
- 你执行的代码实际上运行在服务器上的一个内核(Kernel)中,而不是直接跑在你本地浏览器的页面上。
- 如果运行超大任务、长时间离开电脑、或网络连接出问题,后端内核有小概率会"死亡"(die)。
- 内核挂掉后的恢复方法:点击菜单 Kernel → Restart Kernel,重启后即可继续工作。
- 吴恩达强调:对于本课程中这些相对较小的任务,内核一般不会挂,不必担心。
易错点: 重启内核(Restart Kernel)会清空所有变量、丢失之前所有单元格的运行状态。重启后必须从头(从第一个单元格)重新依次运行,否则会出现
NameError: name 'xxx' is not defined这类报错。
【拓展】Kernel 是什么? Kernel 是一个独立的后台进程,负责实际执行 Notebook 里的 Python 代码,并通过网络协议与前端浏览器通信。前端只负责显示和编辑,真正的计算全部发生在 Kernel 里。这就是为什么:
- 关闭浏览器标签页,Kernel 可能仍在后台运行(占用服务器资源);
- 网络断开时,前端与 Kernel 失联,代码无法执行;
- 不同 Notebook 通常对应不同的 Kernel,变量互不共享。
【拓展】常见的内核错误与排查:
Kernel died/Kernel Dead:通常是内存溢出(OOM)或代码导致进程崩溃,需 Restart Kernel。- 代码"卡住"不返回:可能是死循环或超大计算,可点击 Interrupt Kernel(中断)而非直接重启。
- 变量莫名丢失:多半是内核被自动重启过,需重新运行上方单元格。
四、多代码块必须按顺序执行 [02:23]
本节强调 Notebook 的一个重要使用习惯:即使某些单元格不需要你写代码,也必须执行它们。
要点总结:
- 一个 Notebook 中通常有多个代码块。
- 即使靠前的代码块不需要你填写任何代码,也务必执行它。
- 原因:这些单元格往往承担导入库和初始化变量的工作。例如示例中它会执行
import numpy as np等语句,并设置后续代码块所需的变量。 - 如果不先执行上方单元格,下方代码块会因为缺少依赖而报错。
易错点: 新手常犯的错误是"只运行自己要写的那一格",结果因为没先运行导入 numpy 的单元格而报
NameError: name 'np' is not defined。正确做法是从上到下依次运行所有单元格。
理解:这正是 Notebook"有状态执行"的特点——执行顺序会影响结果。它不像普通脚本那样保证线性执行,而是按你点击运行的顺序累积状态。因此养成"从上往下依次运行"的习惯,能避免绝大多数环境类报错。
五、提交作业与课程结语 [02:51]
本节说明作业完成后如何提交,并对本节的编程练习做总结。
要点总结:
- 完成所有解答后,点击页面上方的 Submit Assignment(提交作业) 按钮,即可将解答提交评分。
- 吴恩达认为 Jupyter Notebook 的交互式、命令行式特性非常适合快速实现几行代码、立即看到结果、快速学习。
- 他希望 Coursera 上的 Jupyter Notebook 编程练习能帮助学员快速学习、实验并掌握这些学习算法的实现方法。
- 本节之后还有一个可选视频,讲解逻辑回归的代价函数(cost function),可看可不看,都不影响。
- 最后祝愿大家第二周编程作业顺利,并期待在第三周内容中再见。
提醒: 提交前务必确认所有单元格都已从上到下运行过一遍,且没有报错,否则评分可能因运行环境问题而失败。
思考:本节虽然讲的是工具操作,但背后体现的是吴恩达一贯的教学理念——"先跑起来、看到结果、再理解原理"。对于初学者,降低环境配置和工具使用的门槛,能让人把精力集中在算法本身的理解上。
关键标签 / 关键词
Jupyter Notebook、iPython、Kernel 内核、Shift+Enter、Run Cell、Markdown 单元格、Restart Kernel、START CODE HERE、Submit Assignment、Coursera、吴恩达深度学习、逻辑回归代价函数、编程作业、交互式编程环境
生成时间:2026-10-10 21:38:40 生成平台:VideoNote www.xygy.top