深度学习编程常用工具 Jupyter Notebook
作者:Damon
交个朋友之猿天地 | 微服务 | 容器化 | 自动化
深度学习编程常用工具
我们来看 4 个常用的编程工具:Sublime Text、Vim、Jupyter。虽然我介绍的是 Jupyter,但并不是要求你必须使用它,你也可以根据自己的喜好自由选择。
Sublime Text
第一个是 Sublime Text,它是一个非常轻量且强大的文本编辑工具,内置了很多快捷的功能,同时还支持很丰富的插件功能,对我们来说非常方便。
如上图所示,它可以自动为项目中的类、方法和函数生成索引,我们让我们可以跟踪代码。可以通过它的 goto anything 功能,根据一些关键字查找到项目中的对应的代码行。
Vim
第二个是 Vim,它是 Linux 系统中的文本编辑工具,方便快捷且强大,我们在项目中经常会使用到。
在我们的项目中,经常需要登录到服务器上进行开发,而服务器一般都是 Linux 系统,不会有 Sublime Text 与 Pycharm,所以我们可以直接用 Vim 打开代码进行编辑。对于没有接触过 Linux 或者是一直使用 IDE 进行编程开发的同学,一开始可能觉得不是很方便,但 Vim 的快捷键十分丰富,对于 Shell 与 Python 的开发来说非常便捷。
Vim 的缺点正如刚才所说,有一点点门槛,需要你去学习它的使用方法。只要你学会了,我保证你将对它爱不释手。
Jupyter Notebook & Lab
最后一个是今天要介绍的 Jupyter Notebook 了,它是一个开源的 Web 应用,能够让你创建、分享包含可执行代码、可视化结构和文字说明的文档。
Jupyter Notebook 的应用非常广泛,它可以用在数据清理与转换、数字模拟、统计模型、数据可视化、机器学习等方面。
Jupyter Notebooks 非常活跃于深度学习领域。在项目的实验测试阶段,它相比于用 py 文件来直接编程还是方便一些。在项目结束之后如果要写项目报告,用 Jupyter 也比较合适。
简单介绍之后,我们接下来就从 Jupyter 的功能、Jupyter 的安装与启动与 Jupyter Lab 的操作这 3 个方面学习 Jupyter。
Jupyter Notebook & Lab 的功能
Jupyter 主要有以下 3 点的作用:执行代码、数据可视化以及使用 Markdown 功能写报告。
执行代码。一般是 Python 程序,也可以添加新的编程语言。
数据可视化。设想一下,我们经常在 Linux 环境编程开发,如果需要对数据可视化该怎么办呢?是不是只能把图片保存下来,然后下载到本地进行查看?使用 Jupyter Notebook 就不用多此一举,我们可以直接在页面中查看。如下图所示:
使用 Markdown 功能写文档,或者制作 PPT。这些文档中还包含代码以及代码执行后的结果,非常有助于你书写项目报告。
Jupyter Notebook & Lab 的安装与启动
了解了 Jupyter 的功能之后,我们来看看具体要如何进行安装与启动。这一节我介绍了 3 种安装和启动的方式,分别是 Anaconda、Docker 和 pip。
使用 Anaconda 安装与启动
我们先来看如何使用 Anaconda 来安装与启动。
安装
最简单的方法是通过安装 Anaconda 来使用 Jupyter Notebook & Lab。Anaconda 已自动安装了 Jupter Notebook 及其他工具,还有 Python 中超过 180 个科学包及其依赖项。你可以通过 Anaconda 的官方网站得到 Anaconda 的下载工具。
启动
这里我会分 MacOS 系统和 Win 环境来讲解。
(1)MacOS 系统
安装完 Anaconda 之后,打开终端后系统会默认进入 base 环境。
在命令行最前面有个**(base)**的标志则表示代码进入 base 环境了,如果没有就需要通过下面的命令激活 base 环境:
在 base 环境下执行下面的命令,会自动进入 Jupyte Notebook 的开发环境。
执行下面的命令,则会自动进入到 Jupyter Lab 的开发环境。
(2)Win 环境
Windows 环境中的启动方式与 MacOS 基本一样。
当你想通过命令 Jupyter Notebook 或 Jupyter Lab 启动时,你需要在 Anaconda Prompt 中执行。
通过 Anaconda Navigator 启动的方式与 MacOS 一样。
使用 Docker
通过 Docker 使用 Jupyter 也非常简单,连安装都不需要,但前提是你要有 Docker 相关的知识。
使用 pip 安装与启动
了解完 Anaconda 和 Docker 的安装与启动方式后,我们最后来看 pip 是如何安装和启动的。
安装
通过 pip 安装 Jupyter Notebook:
通过 pip 安装 Jupyter Lab:
启动
安装完成后,直接在终端执行 Jupyter Notebok 或 Jupyter Lab 命令启动。
不管在 MacOS 系统还是在 Windows 系统,通过以上任意一种方式成功启动后,浏览器都会自动打开 Jupyter Notebook 或 Jupyter Lab 的开发环境:
Jupyter Lab 的操作
Jupyter Lab 是 Jupyter Notebook 的下一代产品,在使用方式上更为灵活、便捷。
我们在命令行或者 Anaconda Navigator 中启动 Jupyter Lab 之后,浏览器会自动打开如下所示的 Jupyter Lab 界面:
最左侧显示的是你启动时所在的目录,右侧是你可以使用的一些开发工具。
Notebook
点击 Notebook 下面的“Python 3”的图标之后,就会自动新建一个 Notebook。
Jypter Lab 与 Jupyter Notebook 中都会用到这个叫作 Notebook 的编辑工具。
Jupyter Lab 与 Jupyter Notebook 不同的地方是 IDE 的界面以及操作方式,这里讲解用的是 Jupyter Lab 的操作。
一个 Notebook 的编辑界面主要由 4 个部分组成:菜单栏、工具栏、单元格(Cell)以及内核。如下图所示:
菜单栏与工具栏这里就不详细介绍了。我们先来看单元格(Cell),然后再介绍内核。
单元格(Cell)
单元格是我们 Notebook 的主要内容,这里我会介绍两种单元格。
Code 单元格:包含可以在内核运行的代码,并且在单元格下方输出运行结果。
Markdown 单元格:包含运用 Markdown 的文档,常用于文档的说明,也是可以运行的单元格。
从 Code 单元格切换到 Markdown 单元格的切换的快捷键是 m;从 Markdown 单元格切换到 Code 单元格的切换的快捷键是 y。
切换之前需要先按 Esc,从单元格的编辑状态中退出。
在工具栏中也可以切换,但是还是快捷键方便些。工具栏的位置在下图中红框的位置:
我们看一个例子。我编辑了下面的 Notebook。第一行是 1 个 Markdown 单元格,是 1 个一级标题,第二行是 1 个 Python 的代码。两行代码都是未运行状态。
你注意到左边那个蓝色的竖条了吗?它代表我们所在的单元格。
我们在编辑这个单元格的时候,左边是绿色的竖条。如果我们按 Esc 退出单元格,它就会变为蓝色。
退出单元格后,我们可以通过上下键移动选中的单元格。我们移动到第一行,然后开始运行这两个单元格。
运行单独一个单元格的快捷键 Ctrl+Enter,运行选中单元格并切换到下一个单元格的快捷键是 Shift + Enter。运行结果如下图所示:
Markdown 没有左边的“[]”标签,通过这一点你可以区分 Code 单元格与 Markdown 单元格。
“[]”中的数字代表单元格被执行的顺序,例子中“[1]”代表第一个被执行的单元格。
以上就是单元格的内容了。我们接下来看看,单元格中的一些快捷键的使用。
(1)快捷键
如果你是用 Jupyter 进行开发,掌握单元格的快捷键能让你的开发速度变得更快,下面我列举了几个常用的快捷键:
执行单元格 Ctrl+Enter 或 Shift+Enter;
a 在单元格上方插入新的单元格;
b 在单元格下方插入新的单元格;
x 删除单元格;
z 撤销删除的单元格。
(2)Magic 命令
Jupyter Notebook 的前身是 IPython Notebook,所以 Jupyter 也支持 IPython 的 Magic 命令。IPython 是一个比 Python 自带的 Shell 更加灵活方便的 Shell,它主要活跃于数据科学领域。
Magic 命令分两种:
Line Magics 命令:在命令前面加 %,表示只在本行有效
Cell Magics 命令:在命令前面加 %%,表示在整个 Cell 单元有效。
下面我介绍几个常用的 Magic 命令。
%lsmagic:用来查看可以使用的 Magic 命令。
%matplotlib inline:可以在单元格下面直接打印出 matplotlib 的图标,通常要在 matplotlib 模块引入之前使用;使用这个 Magic 命令之后,可以不用 plt.show()。
%pwd:查看当前的文件路径。
%%writefile:写文件,%%writefile 后面紧跟着文件名,然后下面写文件的内容。
%run: 运行一个文件,%run 后面跟着要运行的文件。
%load:加载文件。使用 %load + 文件名可以把指定的文件加载到单元格内。请看下面的例子,我们要把 temp.py 加载到单元格里,首先是执行前,
(3)Markdown 命令
了解了 Magic 命令后,我们再来看 Markdown 命令。Markdown 是一种在 Markdown 单元中用于格式化文本的语言,常用于 Notebook 的文档说明,我们列举了几个常用的命令。
标题:通过井号的数目可以决定标题的大小。
列表:分为无序列表与有序列表。
字体:可以通过"*"或者_的数目控制强调的内容,即斜体、加粗以及粗斜体。具体的请看下面的例子。
(4)调用系统命令
最后,在 Notebook 中还可以调用所在操作系统的命令,只需要在命令前加一个“!”就可以了。例如,在 Linux 系统中查看当前路径:
版权声明: 本文为 InfoQ 作者【Xiao8】的原创文章。
原文链接:【http://xie.infoq.cn/article/f3e0513986c6b0a8826c76336】。文章转载请联系作者。
评论