CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

JupyterNotebook的使用-源码交易平台丞旭猿

(说明:这是一份针对0基础初学者的教程)

1.1 Jupyter Notebook的由来

为了让读者对TensorFlow的语法有更形象的观感,下面我们准备采用Jupyter Notebook来完成相关知识的介绍。

为什么要采用Jupyter Notebook呢?在介绍Jupyter Notebook之前,我们先介绍一位计算机领域的大侠客、斯坦福大学终身教授——Donald Knuth(高纳德·克努特,中文名称:高德纳)。高德纳这个中文名字是姚期智的夫人帮忙取的[1],国内有些媒体将其翻译成唐纳德,显然没有尊重高德纳本人的意愿。

高纳德的确是高人一个。他不仅是排版软件TeX(学术论文撰写的利器)和字型设计系统Metafont发明人,还是《计算机程序设计的艺术》(The Art of Computer Programming)的作者。《计算机程序设计的艺术》堪称计算机科学理论与技术的经典巨著。有评论认为,它甚至可与爱因斯坦《相对论》、理查·费曼《量子电动力学》等经典比肩而立。克努特也因而荣获1974年度的图灵奖。

那这位高纳德和我们今天要介绍的Jupyter Notebook又有什么关系呢?关系自然是有的!高纳德提出的一个至今看来仍然很有吸引力的编程方法——文学化编程(Literate Programming)。

传统的编程方式,让人们完全屈就于计算机的逻辑来编写代码。与此相反的是,文学化编程则是让人们按照自己的思维逻辑来开发并描述程序。简单来说,文学化编程的读者是人,而非机器。

这种模式的转换,就是让我们从仅写出让机器读懂的代码,让渡到向人解释如何让机器实现我们的想法。这种解释,除了包括让机器识别的中规中矩的代码,还有人自己喜闻乐见的叙述性的文字、图表等内容。而且这些代码的运行和结果展示,并不需要离开当前文字描述的平台,也就是说,文学化编程支持现场交互式呈现。如此一来,这岂不是数据分析人员所需要的编程风格么?

是的,这种编程风格非常酷!如果说高纳德提出了文学化编程的设想,那么Jupyter Notebook就是实现这一设想的版本之一。Jupyter Notebook可让我们左手程序员,右手作家的梦想更加逼真。

Jupyter脱胎于IPython项目[2]。IPython是一个Python的交互式shell,它比默认的Python shell要好用很多。而Ipython正是Jupyter内核所在。

说到词源,Jupyter是(Julia一个面向科学计算的高性能动态高级程序设计语言)、Python 以及R(统计分析、绘图的语言和操作环境)的组合,字形相近于木星(Jupiter),而它现在支持的语言也远超这三种,C++、C、MATLAB、Spark(Scala)等超过40种编程语言,都被Jupyter所支持(示意图如图1-1所示)。

图1-1 Jupyter支持的主要语言

1.2 Jupyter Notebook的安装

事实上,在前面我们安装Anaconda时,Jupyter Notebook已被默认安装了。如果没被安装,则在conda 环境中,可使用如下命令安装:

conda install jupyter notebook

或者直接通过pip(或pip3)安装:

pip install jupyter notebook

如果安装了Python 3,还可以通过python3命令安装(注意python3首字母小写,且与数字3之间没有空格):

python3 -m pip install –upgrade pip 升级pippython3 -m pip install jupyter 安装Jupyter

下面,我们先创建一个名为tf-notebook目录,来存放有关Jupyter Notebook的有关文档,然后在控制台用jupyter notebook命令启动Jupyter Notebook的服务器,相关指令如下所示。

yhilly@ubuntu:~$ mkdir tf-notebooksyhilly@ubuntu:~$ cd tf-notebooks/yhilly@ubuntu:~/tf-notebooks$ jupyter notebook

其中第3条指令将在默认的网页浏览器中开启一个新的工作空间。如果想要新创建笔记,鼠标单击页面右上角的New按钮,然后选择Python 3,如图1-2所示。具体选择哪个版本的TensorFlow,则取决于我们启动Jupyter Notebook的虚拟环境(就是终端提示符前方的环境名称)。

图1-2 启动Jupyter Notebook

新创建的笔记自动打开,如图1-2所示。此时,笔记并没有被命名,所以被系统自动命名为Untiled(未命名)。

图1-3 新创建的Jupyter笔记

点击Untiled,会弹出重命名对话框,如图1-3所示,在文本框中输入合适的文件名(如myFirstBook),然后点击Rename(重命名)按钮,即可完成笔记的重命名工作。Jupyter Notebook笔记文档的扩展名为.ipynb。

图1-4 Jupyter笔记重命名

在图1-4中,注意到左边有个标识为In[ ]:代码单元格(cell),它提示我们这是个输入代码的区域,我们可以在其中输入任意合法的Python语句。

由于Jupyter book的交互式效果,很大一部分是由绘图呈现,而绘图功能通常是由matplotlib这个包来提供。如果事先没有安装这个包,则可以通过如下指令安装之。

conda install matplotlib

在前期的工作完成后,就可以完成检测代码的输入。

importtensorflowastfimportnumpyasnpimportmatplotlib.pyplotasplt%matplotlibinlinea=tf.random_normal([2,30])sess=tf.Session()out=sess.run(a)x,y=outplt.scatter(x,y)plt.show()

代码输入完毕后,同时按下Shift + Enter(回车键)或者鼠标点击图中箭头所指按钮,即可运行该段代码,运行结果如图1-5所示。

图1-5 在Jupyter中运行代码

如果Jupyter的功能仅限于此,那它和普通的代码IDE环境也就没有太大本质区别。事实上,Jupyter的文学化编程到此并没有体现出来。如何才能体现呢?这就要用到Notebook文档的另外一种单元——Markdown单元格。

先来简单介绍一下Markdown。它是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。由于它的功能比纯文本更加强大,因此也有很多人用它来写博客。

在Jupyter的文本编辑单元格中,采用的就是Markdown的语法规范,因此它可以设置文本格式、插入链接、图片甚至数学公式(类似于LaTeX,编辑公式非常漂亮),如此一来,整个文档就看起来非常图文并茂。同样使用 Shift + Enter 运行Markdown单元来显示格式化的文本(如图1-6所示)。

图1-6 在Jupyter中添加Markdown块

在图1-6中,我们按照标号次序,先添加一个模块(+),然后选择模块位置上移(),最后点击小按钮选择单元格格式——Markdown。在图1-6输入我们对代码的解释。简单解释一下,在Markdown中,两个表示二级标题,三个表示三级标题,以此类推。

在文本编辑块,同时按下Shift + Enter(回车键)即可格式化显示该段文件,如图11-25所示,图文+代码并茂的文档便呈现在我们面前。如果想再次编辑对应的编辑方格(cell),用鼠标单击选中对应的方块,然后直接按回车键即可进入编辑模式。

图1-7 格式化显示Markdown文本

好用的快捷键

shift + 回车 → 运行单元格(当 Markdown 单元格处于编辑状态时,运行即可复原)

(Esc脱离编辑模式)X → 剪切单元格

(Esc脱离编辑模式)C → 复制单元格

(Esc脱离编辑模式)V → 粘贴单元格

(Esc脱离编辑模式)连续按 D D → 删除单元格(慎用,推荐使用 X 剪切单元格代替,因为其可以起到删除效果,且删错了还可以粘贴回来)

(Esc脱离编辑模式)连续按 I I I → 强制中止内核(当某个单元格执行时间较长或卡住时,可以强行中止)

当然,Jupyter的功能及使用技巧远远不止上面简短的介绍,在以后的用得着的日子里,我们还需要边用边摸索,这里就不一一介绍了。


本文部分节选自《深度学习之美:AI时代的数据处理与最佳实践》(张玉宏著,电子工业出版社,2018年7月出版)。更多理论推导及实战环节,请参阅该书。

  1. http://www-cs-faculty.stanford.edu/~knuth/
  2. https://jupyter.org/

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容