基于Jupyter Notebook的Tensorflow深度学习教程 ·基于lupyter Notebook的Tensorflow深度学习教程 。环境搭建 ·关于Docker ·安装Docker ■Docker命令 o Jupyter ·Jupyter界面 ·lupyter单元格 o Tensorflow的辅助支持库 ■NumPy ·NumPy数据 ■NumPy运算 ■NumPy素引 ·NumPy合并与分割 ·Pandas ■Pandas对象 ■Pandas选择数据 ·Matplotlib 环境搭建 学习Tensorflow,首先要配置好Tensorflow的运行环境,这也是很多入门者感到困难的地方。要保证 Matplotlib等,往往还要配置环境变量。如果某些版本的模块与当前环境不兼容,那就会出现各种各样的错 误。开发者常常碰到的一个场是是:在自己的机器上可以正常坛行,换一台机器上就运行不了。环培配置如出 麻烦,换一台机器,就要重来一次,费时费力。能不能从根本上解决问愿?安装软件的时候,能不能把正确的 环境打包复制过来?这就是Docker起作用的地方。 关于Docker Dokr(搬运工)是一个遵从Apache协议开源的应用容器引擎,它把要运行的应用以及依黄软件打包到一个 轻量级、可移植的自给自足的容器中,然后可以发布到任何流行的Linux、Windows和MacOS机器上。 Docker的推出具有划时代的意义 它彻底释放了计算虚拟化的威力,极大提高了应用的部署效率,降低了云计 算资源的供应成本。使用Docker,我们可以把配置好的Tensorflow资源下载到自己的机器上直接运行,避免 了繁琐的安装和配置,极大的提高效率节约时间。Dod水er有三个基木要素,1)Docker Containers(容器): 负责应用程序的运行,包括操作系统、用户添加的文件以及元数据:2)Docker Images(镜像):是一个只读 模板,用来运行Docker容器:3)DockerFile:文件指令集,用来说明如何自动创建Docker镜像。镜像文件是 Docker应用的基础,在Docker Hub.上存储了大量的公共镜像,包括我们要使用的Tensorflow镜像。 安装Docker 我们以Windows系统为例,介绍安装Docker相关工具的过程,MacOs系统的安装可以参照 1/24
1/24 基于 Jupyter Notebook 的 Tensorflow 深度学习教程 基于 Jupyter Notebook 的 Tensorflow 深度学习教程 环境搭建 关于Docker 安装Docker Docker 命令 Jupyter Jupyter 界面 Jupyter 单元格 Tensorflow 的辅助支持库 NumPy NumPy 数据 NumPy 运算 NumPy 索引 NumPy 合并与分割 Pandas Pandas 对象 Pandas 选择数据 Matplotlib 环境搭建 学习 Tensorflow,首先要配置好 Tensorflow 的运行环境,这也是很多入门者感到困难的地方。要保证 Tensorflow 能够正常运行,必须确保软件版本,各种依赖库和组件的安装都正确。举例来说,安装 Python 时,有 2.x 和 3.x 不同的版本,有面向 32 位和 64 位不同的操作系统环境,还必须有各种依赖库如 Numpy、 Matplotlib 等,往往还要配置环境变量。如果某些版本的模块与当前环境不兼容,那就会出现各种各样的错 误。开发者常常碰到的一个场景是:在自己的机器上可以正常运行,换一台机器上就运行不了。环境配置如此 麻烦,换一台机器,就要重来一次,费时费力。能不能从根本上解决问题?安装软件的时候,能不能把正确的 环境打包复制过来?这就是 Docker 起作用的地方。 关于Docker Docker(搬运工)是一个遵从 Apache 协议开源的应用容器引擎,它把要运行的应用以及依赖软件打包到一个 轻量级、可移植的自给自足的容器中,然后可以发布到任何流行的 Linux、Windows 和 MacOS 机器上。 Docker 的推出具有划时代的意义,它彻底释放了计算虚拟化的威力,极大提高了应用的部署效率,降低了云计 算资源的供应成本。使用 Docker,我们可以把配置好的 Tensorflow 资源下载到自己的机器上直接运行,避免 了繁琐的安装和配置,极大的提高效率节约时间。Docker 有三个基本要素,1)Docker Containers(容器): 负责应用程序的运行,包括操作系统、用户添加的文件以及元数据;2)Docker Images(镜像):是一个只读 模板,用来运行 Docker 容器;3)DockerFile:文件指令集,用来说明如何自动创建 Docker 镜像。镜像文件是 Docker 应用的基础,在 Docker Hub上存储了大量的公共镜像,包括我们要使用的 Tensorflow 镜像。 安装Docker 我们以 Windows 系统为例,介绍安装 Docker 相关工具的过程,MacOS 系统的安装可以参照
https/docs.dockercom/toolbox/toolbox install mac/:Linux系统(包括Ubuntu、Debian、CentoS和 Fedora)可以安装Dokcer CE(Community Edition),参见htps:/docs.docker.com/instal//linux/docker ce/ubuntu/。 目前支持Windows系统的Docker工具包括:Docker Toolbox和Docker CE。.经过测试,我们推荐使用Docke Toolbox,Doc水er Toolbox支持64位的Vindows7、8、10等系统。首先检查系统是否打开虚拟化支持,用 可以右健点击任务栏,选择任务管理器”,切换到性能"页,进行查看。 CPU ☐的地 ☐壁0cr利 刀8e 8 15%400G地 83189640155 0035608 ⊙装路怎中必四力开家■ 如果虚拟化功能未启用,需要重新启动计算机进入B1OS将虚拟化功能打开。打开 htps:/docs.docker.com/.toolbox/toolbox_install_windows/页面,点击相应下载按钮进行下载。因为下载文件尺 寸较大,推荐使用下载工具进行下载。下载后运行Docker Toolbox exe安装。 Setup-Docker Toolbox eDocker Toolbox edthatyoudoealoheaolatorsbe包 c,orCaneetoeotsehp s durng instal. 安装过程中接受所有默认选项即可。安装完成后,双击Docker QuickStart Terminal启动Docker客户端, 2/24
2/24 https://docs.docker.com/toolbox/toolbox_install_mac/ ;Linux 系统(包括Ubuntu、Debian、CentOS和 Fedora)可以安装 Dokcer CE(Community Edition),参见 https://docs.docker.com/install/linux/dockerce/ubuntu/ 。 目前支持 Windows 系统的 Docker 工具包括:Docker Toolbox 和 Docker CE。经过测试,我们推荐使用 Docker Toolbox,Docker Toolbox 支持 64 位的 Windows 7、8、10 等系统。首先检查系统是否打开虚拟化支持,用户 可以右键点击任务栏,选择“任务管理器”,切换到“性能”页,进行查看。 如果虚拟化功能未启用,需要重新启动计算机进入 BIOS 将虚拟化功能打开。打开 https://docs.docker.com/toolbox/toolbox_install_windows/ 页面,点击相应下载按钮进行下载。因为下载文件尺 寸较大,推荐使用下载工具进行下载。下载后运行 DockerToolbox.exe 安装。 安装过程中接受所有默认选项即可。安装完成后,双击 Docker QuickStart Terminal 启动 Docker 客户端
Docker Quickstart Terminal 在第一次运行Docker时,会在线下载最新版本的Boot2 Dockeris0文件,文件会被下载到 C.\Users\Administratordocker\machine\cache\目标文件夹中,如果当前用户不是Administrator,就用当前用 户名替换路径中的Administrator,如用户名是hangsan,文件夹就是 C:\Use rs\zhangsan..docker\machine\cache\,在这一步下载耗时较长,有时会超时失败,建议用下载工具下载相 应文件,下载后把它复制到目标文件夹中即可。 Docker命令 运行Docker后,初始页面会显示一条载货小鲸鱼的文本图像,这是Docker的标志。同时还会显示出为当前机 器配置的iD地址,一般是192.16B.99.100。后面在运行Tensorflow镜像时需要使用这个地址。 MINGW64/c/Users/Administrator n。 rt interactive shel】 ZB-106-Adninistratoredy teb-106 MINGUG4 在Docker中运行各种应用都需要使用对应的镜像文件,在hub.docker.com网站上可以找到数以万计的镜像文 件,我们要使用的Tensorflow镜像也可以从该网站下载。我们可以使用pul命令从Docker Hub网站下载: docker pull tensorflow/tensorflow:latest-py3 3/24
3/24 在第一次运行 Docker 时,会在线下载最新版本的 Boot2Docker.iso 文件,文件会被下载到 C:\Users\Administrator.docker\machine\cache\ 目标文件夹中,如果当前用户不是 Administrator,就用当前用 户名替换路径中的 Administrator,如用户名是 zhangsan,文件夹就是 C:\Users\zhangsan.docker\machine\cache\,在这一步下载耗时较长,有时会超时失败,建议用下载工具下载相 应文件,下载后把它复制到目标文件夹中即可。 Docker 命令 运行 Docker 后,初始页面会显示一条载货小鲸鱼的文本图像,这是 Docker 的标志。同时还会显示出为当前机 器配置的ip地址,一般是 192.168.99.100 。后面在运行 Tensorflow 镜像时需要使用这个地址。 在 Docker 中运行各种应用都需要使用对应的镜像文件,在 hub.docker.com 网站上可以找到数以万计的镜像文 件,我们要使用的 Tensorflow 镜像也可以从该网站下载。我们可以使用 pull 命令从 Docker Hub 网站下载: docker pull tensorflow/tensorflow:latest-py3
这条命令将下载Python3版本的最新Tensorflow(当下是1.5版)镜像,tensorflow/tensorflow是镜像的名 字,斜线前的tensorflow表示Docker Hub用户名,斜线后的tensorflow表示资源库名称,冒号后面的latest py3,是Docker镜像的标签(tag),用以区分镜像的不同的子版本。以Tensorflow为例,其镜像支持数十种 标签,包括latest,nightly,latest-.gpu,latest--devel-gpu等等。其中的latest是缺省标签,也就是说如果未指 定标签的话,就会使用latest。我们这里没有使用latest标签,因为tensorflow/tensorflow:latest镜像对应 Python2.7版,我们要使用的是Python3.5版,对应的是latest-py3标签。 pul命令成功运行后,tensorflow的镜像文件就下载到本地了,我们可以通过images命令来查看本地的所有镜 像: docker images 在运行Tensorflow镜像之前,我们要准备好要测试的代码资源,我们首先在当前用户目录下新建一个子目录 gt,如果用户名是小hangsar 文件夹就是C:\Users\zhangsan\git将本书配套的代码或者其他练习代码复制到 该文件夹中。我们运行镜像时,运行环境和本地环境是隔离的,为了让运行起来的镜像(容器)能够访问本地 资源,我们需要进行资源映射。比如Tensorflow镜像中封装了lupyter工具,缺省使用8888端口提供服务, 我们就要使用p命令将本地的8888端口映射到容器的8888端口。为了让容器能够访问本地gt目录中的文 件,我们使用-v命令将本地的gt目录映射到容器里相应的目录。要运行Tesnorflow,我们可以使用run命 令,同时指定端口映射和路径映射: docker run -it-p 8888:8888 -v~/git/:/notebooks/git/ tensorflow/tensorflow:latest-py3 在这条run命令里,-it表示要启动一个交互式(interactive)的终端(terminal),-p表示端口(port)映 -v表示路径(volume)映射,映射的格式是:"本地资源容器资源"。如~git/:/notebooks//git/表示把本 地当前用户目录(~)下的gt子日录,映射到容器里根目录()下的notebooks//gt子目录。为什么容器目录 里要加上notebooks目录呢?如果你打开tensorflow容器看一下就明白了,在我们运行的tensorflow容器里, 事先已经建立了notebooks目录,Jupyter就是从这个目录启动的,所以/notebooks目录就是Jupyter的根目 录,我们把本地的gt目录映射到notebooks/.git,所以打开upyter页面后就可以看到git目录,点击进入就 可以测试代码了。 执行完docker run命令后,系统会提示我们打开Jupyter的服务页面: 4/24
4/24 这条命令将下载 Python 3 版本的最新 Tensorflow(当下是 1.5 版)镜像,tensorflow/tensorflow 是镜像的名 字,斜线前的 tensorflow 表示 Docker Hub 用户名,斜线后的 tensorflow 表示资源库名称,冒号后面的 latestpy3,是 Docker 镜像的标签(tag),用以区分镜像的不同的子版本。以 Tensorflow 为例,其镜像支持数十种 标签,包括 latest,nightly,latest-gpu,latest-devel-gpu 等等。其中的 latest 是缺省标签,也就是说如果未指 定标签的话,就会使用 latest。我们这里没有使用 latest标签,因为 tensorflow/tensorflow:latest 镜像对应 Python 2.7 版,我们要使用的是 Python 3.5 版,对应的是 latest-py3 标签。 pull 命令成功运行后,tensorflow的镜像文件就下载到本地了,我们可以通过 images 命令来查看本地的所有镜 像: docker images 在运行Tensorflow镜像之前,我们要准备好要测试的代码资源,我们首先在当前用户目录下新建一个子目录 git,如果用户名是 zhangsan,文件夹就是 C:\Users\zhangsan\git, 将本书配套的代码或者其他练习代码复制到 该文件夹中。我们运行镜像时,运行环境和本地环境是隔离的,为了让运行起来的镜像(容器)能够访问本地 资源,我们需要进行资源映射。比如 Tensorflow 镜像中封装了 Jupyter 工具,缺省使用 8888 端口提供服务, 我们就要使用 -p 命令将本地的 8888 端口映射到容器的 8888 端口。为了让容器能够访问本地 git 目录中的文 件,我们使用 -v 命令将本地的 git 目录映射到容器里相应的目录。要运行 Tesnorflow,我们可以使用 run 命 令,同时指定端口映射和路径映射: docker run -it -p 8888:8888 -v ~/git/:/notebooks/git/ tensorflow/tensorflow:latest-py3 在这条 run 命令里, -it 表示要启动一个交互式(interactive)的终端(terminal),-p 表示端口(port)映 射,-v 表示路径(volume)映射,映射的格式是:“本地资源:容器资源”。如 ~/git/:/notebooks/git/ 表示把本 地当前用户目录(~)下的 git 子目录,映射到容器里根目录(/)下的notebooks/git 子目录。为什么容器目录 里要加上notebooks目录呢?如果你打开 tensorflow 容器看一下就明白了,在我们运行的 tensorflow 容器里, 事先已经建立了 /notebooks 目录,Jupyter 就是从这个目录启动的,所以 /notebooks 目录就是 Jupyter 的根目 录,我们把本地的 git 目录映射到 /notebooks/git,所以打开 Jupyter 页面后就可以看到 git 目录,点击进入就 可以测试代码了。 执行完 docker run 命令后,系统会提示我们打开 Jupyter 的服务页面:
出。 , 把屏幕最下方的链接地址中的1 ocalhost换成之前初始页面里面提示的1P地址,一般是192.168.99.100,对应 图中的例子,就是:http/192.168.99.100:8888/7 token:=469d68b945a185bf5002e7台fb60a602e2285c29e719b690。用浏览器打开这个链接地址,就会显示 出Jupyter页面: →C0192.16899.100 Jupyter 回0✉s/ 另一种打开upyter的方法是用浏览器打开http/192.168.99.100:8888/这个地址,在显示的Web页面里填 写相应的Token,对应图中的例子就是469d68b945a185bf5002e7fafb60a602e228529e719b690,也一样会 登录进Jupyter页面。 到目前为止,我们已经打开Jupyter页面,可以进行代码测试了。点击右上角的New按钮,选择Python3 Notebook,建立一个Python笔记本。 5/24
5/24 把屏幕最下方的链接地址中的 localhost 换成之前初始页面里面提示的 IP 地址,一般是 192.168.99.100,对应 图中的例子,就是:http://192.168.99.100:8888/? token=469d68b945a185bf5002e7fafb60a602e2285c29e719b690 。 用浏览器打开这个链接地址,就会显示 出 Jupyter 页面: 另一种打开 Jupyter 的方法是用浏览器打开 http://192.168.99.100:8888/ 这个地址,在显示的 Web 页面里填 写相应的 Token,对应图中的例子就是 469d68b945a185bf5002e7fafb60a602e2285c29e719b690 ,也一样会 登录进 Jupyter 页面。 到目前为止,我们已经打开 Jupyter 页面,可以进行代码测试了。点击右上角的 New 按钮,选择 Python 3 Notebook,建立一个Python笔记本
0019219 Jupyter 1个月 在笔记本的第一个单元格(cel)里输入代码,按Sht+Enter组合键执行,也可以点击工具栏里面的Run按 纽执行。首先检查一下Python、Tensorflow和Numpy的版本号: !python-version Python 3.5.2 import tensorflow as tf tf.version 1.5.0 import numpy as np np.version 1.14.0 6/24
6/24 在笔记本的第一个单元格(cell)里输入代码,按 Shift + Enter 组合键执行,也可以点击工具栏里面的 Run 按 钮执行。首先检查一下 Python、Tensorflow 和 Numpy 的版本号: !python --version Python 3.5.2 import tensorflow as tf tf.__version__ 1.5.0 import numpy as np np.__version__ 1.14.0
@☆1 lupyter Untitled In tprt s 1/1!b/pytho 0:‘1,5. :'11. Jupyter 在学习Tensorflow之前,有必要熟悉一下我们的工程环境,我们使用lupyter notebook作为我们的练习环境。 Jupyter Notebook(之前称为IPython noteb)是一个交互式笔记本工具,它的核心在于展示与快速达,代 支持运行包括Python在内的40多种编程语言。在本节中,我们将介绍Jupyter notebook的主要特性。在开 始使用notebook之前,我们先需要安装该库。一般情况下需婴pip install jupyter就可以了。在我们的 Tensorflow镜像里面已经集成了Jupyter工具,就可以省略安装这一步了。 Jupyter界面 upyter notebook界面由以下部分组成 ·Jupyter的标志和当前notebook的名称(Untitled) ·莱单栏,提供了全面的控制选项: ·工具栏,提供了保存、导出、重载notebook,以及重启内核等常用选项: ·notebook编辑区,包含了notebook的编辑内容 单击Untitiled名称,输入'mybook',点击Rename,为自己的笔记本命名: 7/24
7/24 Jupyter 在学习 Tensorflow 之前,有必要熟悉一下我们的工程环境,我们使用 Jupyter notebook 作为我们的练习环境。 Jupyter Notebook(之前称为 IPython notebook)是一个交互式笔记本工具,它的核心在于展示与快速迭代, 支持运行包括 Python 在内的 40 多种编程语言。在本节中,我们将介绍 Jupyter notebook 的主要特性。在开 始使用 notebook 之前,我们先需要安装该库。一般情况下需要 pip install jupyter 就可以了。在我们的 Tensorflow 镜像里面已经集成了 Jupyter 工具,就可以省略安装这一步了。 Jupyter 界面 Jupyter notebook 界面由以下部分组成: Jupyter 的标志和当前 notebook 的名称(Untitled); 菜单栏,提供了全面的控制选项; 工具栏,提供了保存、导出、重载 notebook,以及重启内核等常用选项; notebook 编辑区,包含了 notebook 的编辑内容 单击 Untitiled 名称,输入 ‘mybook’,点击 Rename,为自己的笔记本命名:
upvter Untitled 可以看到当前笔记本的名称己经改为mybook': jupyter mybook (ascaavec) 8+K色D++州Rm■c”C可回 【h]:h ():.. 0a37:"1.14g 同时,注意到浏览器的地址栏里面,当前文件名称也改变成mybook..ipynb。 第一次使用Iupyter,可以使用菜单栏右侧的帮助菜单,选择Help->User Interface Tour(用户界面游览), 会显示一系列帮助提示,方便我们了解upyter界面上各组成部分的功能。 8/24
8/24 可以看到当前笔记本的名称已经改为‘mybook’: 同时,注意到浏览器的地址栏里面,当前文件名称也改变成 mybook.ipynb 。 第一次使用 Jupyter,可以使用菜单栏右侧的帮助菜单,选择 Help -> User Interface Tour(用户界面游览), 会显示一系列帮助提示,方便我们了解 Jupyter 界面上各组成部分的功能
二Jupyter mybook 2]:1. lupyter单元格 页面下方的主要区域,由被称为单元格(cl)的部分组成。Notebook就是由多个单元格构成的,每个单元格 又可以有不同的类型。点击工具栏右边的下拉列表框,可以为当前单元格设置不同的类型: a在 jupyter mybook n5 tn t 1: 代码单元格(codecel),以T”开头。在这种类型的单元格中,可以输入Python代码并执行。例如,输入1 +1并按下Sht+Enter之后,单元格中的代码会被计算,光标也会被移动动到下一个新的单元格中: 9/24
9/24 Jupyter 单元格 页面下方的主要区域,由被称为单元格(cell)的部分组成。Notebook 就是由多个单元格构成的,每个单元格 又可以有不同的类型。点击工具栏右边的下拉列表框,可以为当前单元格设置不同的类型: 代码单元格(code cell),以 “[ ]” 开头。在这种类型的单元格中,可以输入 Python 代码并执行。例如,输入 1 + 1 并按下 Shift + Enter 之后,单元格中的代码会被计算,光标也会被移动动到下一个新的单元格中:
二Jupyter mybook o:1.. n: En6:1+1 m I 1I upyter有一个非常强大的特性,就是可以修改之前的单元格,对其重新计算,这样就可以迭代式的实验,方 便的运行多个相关代码。试着把光标移回第一个单元格,并将1+1修改成1+2,然后按下Shit+Eter重 新计算该单元格。你会发现结果马上就更新成了3。我们也可以重新计算全部单元格,只要选择菜单Cl-> Runa(执行全部单元格)即可。 upyter的强大功能不止于此,它支持所谓的'文学编程'(Literate programming) ,除了代码单元格外,我们 可以使用标题单元格(Heading)和文本单元格(Markdown)。通过综合运用这些不同类型的单元格, Jupyter可以一边用文字解释代码,一边运行代码,把整个过程记录成完整的实验报告,这些实验报告可以转 换成html网页或者pdf文档进行输出。 我们在计算单元格的顶部添加一个标题单元格。选中之前的计算单元格,然后点击Insert->Insert Cell Above(在上方插入单元格)。在刚刚的计算单元格顶部马上就出现了一个新的单元格。点击工具栏右边的单 元格类型下拉列表框,选择Heading,将其变成一个标题单元格。Jupyter会提示:将使用Markdown语法来 定义标题。在单元格中输入加法测试,按下Sht+Enter: ←C0不2室1921689%.100 二Jupyter mybook o: 加法测试 “m Tensorflow的辅助支持库 10/24
10/24 Jupyter 有一个非常强大的特性,就是可以修改之前的单元格,对其重新计算,这样就可以迭代式的实验,方 便的运行多个相关代码。试着把光标移回第一个单元格,并将 1 + 1 修改成 1 + 2,然后按下 Shift + Enter 重 新计算该单元格。你会发现结果马上就更新成了 3 。我们也可以重新计算全部单元格,只要选择菜单 Cell -> Run all (执行全部单元格)即可。 Jupyter 的强大功能不止于此,它支持所谓的‘文学编程’(Literate programming),除了代码单元格外,我们 可以使用标题单元格(Heading)和文本单元格(Markdown)。通过综合运用这些不同类型的单元格, Jupyter 可以一边用文字解释代码,一边运行代码,把整个过程记录成完整的实验报告,这些实验报告可以转 换成 html 网页或者 pdf 文档进行输出。 我们在计算单元格的顶部添加一个标题单元格。选中之前的计算单元格,然后点击 Insert -> Insert Cell Above(在上方插入单元格)。在刚刚的计算单元格顶部马上就出现了一个新的单元格。点击工具栏右边的单 元格类型下拉列表框,选择 Heading,将其变成一个标题单元格。Jupyter 会提示:将使用 Markdown 语法来 定义标题。在单元格中输入 ‘加法测试’,按下 Shift + Enter : Tensorflow 的辅助支持库