月度归档:2018年10月

19.1 Jupyter Notebook概述

说话说得好,“磨刀不误砍柴工”,但有时选择比磨刀更重要。比如,砍树可以用斧头、砍刀、电锯等,如果选择电锯,不断不需要磨刀,而且效率也是其它工具的几倍。
Jupyter Notebook就是一把好用、高效、安全的"电锯"。目前Jupyter Notebook已成为Kaggle比赛中提交代码的主要方式。它广泛用于数据科学和机器学习领域,是运行深度学习实验的首先方法(keras之父、Kaggle竞赛教练 弗朗索∙肖莱所言)。
Jupyter Notebook(此前被称为 IPython notebook)是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于做及时的说明和解释。Jupyter Notebook有以下特点:
(1)编程时具有语法高亮、缩进、tab补全的功能。
(2)可直接通过浏览器运行代码,同时在代码块下方展示运行结果。
(3)以富媒体格式展示计算结果。丰富媒体格式,包括:HTML,LaTeX,PNG,SVG等。
(4)对代码编写说明文档或语句时,支持Markdown语法。
(5)支持使用LaTeX编写数学性说明。
(6)可以直接生成Python脚本、运行Python代码和脚本、或保存为PDF、XML等格式。
(7)可以对冗长的代码拆分为可独立运行的短代码,也可把一些短代码合并为一段长代码。
(8)交互式运行代码,如果后面代码出现问题,不必运行前面的代码。

19.2安装配置Python

(1)连接到Anaconda官网(https://www.anaconda.com/download/)下载对应环境、对应位数的软件包。建议下载Python3系列的,如下图:

(2)把下载软件(Linux对应是一个.sh脚本,大约640M左右,windows环境是一个.exe文件)存放在Linux服务器上,然后执行该脚本即可。
在Linux下安装下安装
①先下载管理包Anaconda2-4.0.0-Linux-x86_64.sh,
②在Linux命令行下运行:

③按缺省步骤即可,最后有一个提示,是否把当前路径存放到配置文件.bashrc中,选择 yes就可。
④安装成功后,如果还需要安装或更新其他库,只要在命令行执行:conda install 库名称或conda update 库名称,如安装tensorflow,只需要执行 conda install tensorflow即可。
当然也可用pip安装。
⑤可以用conda list 查看已安装的包或库
在windows下安装:
①从python官网下载Anaconda3-4.4.0-Windows-x86_64.exe或更高版本的,下载时注意选择64位还是32位(window8之后一般都是64位)
②双击该文件,开始执行,基本点next就可
③安装完成后,如果还需要安装或更新其他库,只要在cmd中执行:conda install 库名称或conda update 库名称。
如安装tensorflow,只需要执行 conda install tensorflow即可。当然也可用pip安装
④在cmd中可以用conda list 查看已安装的包或库


conda的常用命令:

19.3 Jupyter配置

下面是配置Jupyter Notebook的主要步骤。这是在Linux环境的配置方法,如果在window下,无需任何配置,启动Jupyter Notebook之后,自动弹出一个网页(网址为:localhost:8888),点击其中的new下拉菜单,选择pyhton3,就可进行编写代码、运行代码了。
1)生成配置文件

将在当前用户目录下生成文件:.jupyter/jupyter_notebook_config.py
2)生成当前用户登录jupyter密码
打开ipython, 创建一个密文密码

3)修改配置文件

进行如下修改:

4)启动jupyter notebook

然在浏览器上,输入IP:port,即可看到如下类似界面。

然后,点击New下列菜单,选择python3,将弹出Python编写界面,我们就可以在浏览器进行开发调试Python或keras、Tensorflow、Pytorch等程序。

19.4 Jupyter使用实例

以下以Linux环境为例,Windows环境基本相同。
(1)如何执行cell中的代码
同时按Shift键和Enter键即可。以下为代码示例。

运行结果
开发语言:python
(2)执行一些简单shell命令

运行结果:

(3)导入该脚本(或模块),并查看该模块的功能简介

(4)执行python脚本

【说明】
为了使该脚本有更好的移植性,可在第一行加上一句#!/usr/bin/python
运行.py文件时,python自动创建相应的.pyc文件,如下图,.pyc文件包含目标代码(编译后的代码),它是一种python专用的语言,以计算机能够高效运行的方式表示python源代码。这种代码无法阅读,故我们可以不管这个文件。
(5)添加注释或说明文档

(6)可以像word文档一样添加目录
为使你的jupyter更加方便快捷,我们可以对notebook内容分章节,然后对这些章节建立目录,我们要浏览或查看某个章节,只需点击对应目录,就可跳到对应位置,非常方便,如下图,需要安装一个扩展模块:jupyter_contrib_nbextensions,使用conda或pip安装,如下命令:conda install -c conda-forge jupyter_contrib_nbextensions
或pip install jupyter_contrib_nbextensions
具体安装配置,可参考以下博文:
https://www.jianshu.com/p/f314e9868cae
下图为效果图:

(7)修改文件名称
jupyter的文件自动保存,名称也是自动生成的,对自动生成的文件名称,我们也可重命名,具体步骤如下;
点击目前文件名称:

然后重命名,并点击rename即可,具体可参考下图:

(8)画图也很方便
以下是画一条抛物线的代码,在jupyter显示图形,需要加上一句:%matplotlib inline,具体代码如下:

(9)在jupyter 里查看函数、模块的帮助信息也很方便。
查看命令函数及帮助等信息
命令. 然后按tab键 可查看所有的函数
命令? 可查看对应命令的帮助信息

查看a1数组,可以使用的函数

查看argmax函数的具体使用方法,只要在函数后加上一个问号(?),然后运行,就会弹出一个详细帮助信息的界面,具体可参考下图:

(10)编写公式也很方便

然后执行该cell,就可看到如下结果:

更多LaTeX的使用方法,可参考:
https://www.jianshu.com/p/93ccc63e5a1b