[学习] 深度学习-Lesson 3 jupyter notebooks

1. Jupyter notebook 是什么?

Jupyter notebook 是一种 Web 应用,能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。

1.1 文学化编程

在文字表达化编程中,直接在代码旁写出叙述性文档,而不是另外编写单独的文档。

1.2 notebook如何工作

[学习] 深度学习-Lesson 3 jupyter notebooks

此架构的一个优点是,内核无需运行 Python。由于 notebook 和内核分开,因此可以在两者之间发送任何语言的代码。

另一个优点是,你可以在任何地方运行 notebook 服务器,并且可通过互联网访问服务器。

2 安装jupyter notebook

conda install jupyter notebook

pip install jupyter notebook

3 启动notebook服务器

3.1 notebook服务器

启动:jupyter notebook

[学习] 深度学习-Lesson 3 jupyter notebooks

如果在 conda 环境中运行 notebook 服务器,则你还能访问以下所示的“Conda”选项卡。 (需要在terminal中安装“Conda”选项卡,语句为conda install jupyter notebook nb_conda)

[学习] 深度学习-Lesson 3 jupyter notebooks

3.2 关闭jupyter

1. 通过在服务器主页上选中 notebook 旁边的复选框,然后点“Shutdown”(关闭)

2. 通过在终端中按两次 Ctrl + C,可以关闭整个服务器。

4. notebook 界面

[学习] 深度学习-Lesson 3 jupyter notebooks

看到外框为绿色的一个小方框,成为单元格。单元格是你编写和运行代码的地方。你也可以更改其类型,以呈现 Markdown(一种常用于编写 Web 内容的格式化语法)。

4.1 工具界面

从左侧开始,工具栏上的其他控件是:

  1. 软盘符号表示“保存”。请记得保存 notebook!
  2. + 按钮用于创建新的单元格
  3. 然后是用于剪切、复制和粘贴单元格的按钮。
  4. 运行、停止、重新启动内核
  5. 单元格类型:代码、Markdown、原始文本和标题
  6. 命令面板(见下文)
  7. 单元格工具栏,提供不同的单元格选项(例如将单元格用作幻灯片)

4.2 命令面板

4.3 更多事项

 重命名

 在“File”(文件)菜单中,你可以选择多种格式进行 notebook 的下载。通常,你会希望将它作为 HTML 文件下载,以便与不使用 Jupyter 的其他人共享。也可以将 notebook 作为普通的 Python 文件下载,此时所有代码都会像平常一样运行。要在博客或文档中使用 notebook,Markdown 和 reST 格式很合适。

5 代码单元格

6 Markdown 单元格

https://daringfireball.net/projects/markdown/basics

6.1 标题

# Header 1    ## Header 2    ### Header 3

6.2 链接

要在 Markdown 中添加链接,请在文本两侧加上方括号,并在 URL 两侧加上圆括号。

[Leon's ****](https://me.****.net/u013659598)

6.3 强调效果

可以使用星号或下划线(* 或 _)来表示粗体或斜体,从而添加强调效果。

6.4 代码

可以通过两种不同的方式显示代码,一种是与文本内联,另一种是将代码块与文本分离。

6.5 数学表达式

在 Markdown 单元格中,可以使用 LaTeX 符号创建数学表达式。

LaTeX 入门

http://data-blog.udacity.com/posts/2016/10/latex-primer/

6.6 小结

有问题查下列网页

https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet

7 快捷键

8 Magic 关键字

 

8.1 Magic 关键字

Magic 关键字是可以在单元格中运行的特殊命令,能让你控制 notebook 本身或执行系统调用(例如更改目录

8.2 代码计时

可以使用 Magic 命令 timeit 测算函数的运行时间,如下所示:

[学习] 深度学习-Lesson 3 jupyter notebooks

如果要测算整个单元格的运行时间,请使用 %%timeit,如下所示:

[学习] 深度学习-Lesson 3 jupyter notebooks

8.3 在notebook中嵌入可视化内容

在 notebook 中可以使用 %matplotlib 将 matplotlib 设置为以交互方式工作。

[学习] 深度学习-Lesson 3 jupyter notebooks

8.4 在notebook中进行调试

对于 Python 内核,可以使用 Magic 命令 %pdb 开启交互式调试器。出错时,你能检查当前命名空间中的变量。

[学习] 深度学习-Lesson 3 jupyter notebooks

pdb文档:https://docs.python.org/3/library/pdb.html

8.5 补充读物

http://ipython.readthedocs.io/en/stable/interactive/magics.html

9 转换notebook

9.1 转换notebook

Notebook 只是扩展名为 .ipynb 的大型 JSON 文件。

JSON->HTML: jupyter nbconvert --to html notebook.ipynb

我们也可以在notebook界面中点击File,在弹出的菜单中点击Download as,之后选择我们需要转换的格式。

[学习] 深度学习-Lesson 3 jupyter notebooks

nbconvert 文档:https://nbconvert.readthedocs.io/en/latest/usage.html

10. 创建幻灯片

 notebook 中创建幻灯片的过程像平常一样,但需要指定作为幻灯片的单元格和单元格的幻灯片类型。在菜单栏中,点击“View”(视图)>“Cell Toolbar”(单元格工具栏)>“Slideshow”(幻灯片),以便在每个单元格上弹出幻灯片单元格菜单。

[学习] 深度学习-Lesson 3 jupyter notebooks

这会在每个单元格上显示一个下拉菜单,让你选择单元格在幻灯片中的显示方式。

[学习] 深度学习-Lesson 3 jupyter notebooks

Slides(幻灯片)是你从左向右移动的完整幻灯片。按向上或向下的箭头时,Sub-slides(子幻灯片)会出现在幻灯片中。Fragments(片段)最初是隐藏的,在你按下按钮时会出现。选择Skip(忽略)会在幻灯片中忽略该单元格,而选择 Notes(备注)会将为演讲者保留备注。

10. 2 运行幻灯片

创建幻灯片: jupyter nbconvert notebook.ipynb --to slides

转换看幻灯片:jupyter nbconvert notebook.ipynb --to slides --post serve