使用Python开发工具Jupyter Notebook学习Tensorflow入门及Tensorboard实践

【人工智能头条导读】Jupyter Notebook 是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码、数学方程、可视化和 Markdown,其用途包括数据清理和转换、数值模拟、统计建模、机器学习等等。目前,数据挖掘领域中最热门的比赛 Kaggle 里的资料都是 Jupyter 格式。对于人工智能新手来说,学会使用 Jupyter Notebook 非常重要[2]

作为程序员的我,原先比较喜欢用Eclipse做Java开发,也就在Eclipse上安装PyDev插件,进行Python学习和深度学习算法学习研究,写本文8个月前,在招聘了一位人工智能开发者后,经过短暂的交流,了解到有这样的工具Jupyter,开发过程中,随时能看到输出结果,类似早年的PowerBuilder/Delphi。

既然很多人在用Jupyter工具进行人工智能开发,我也试一试,实践。

1. 安装Jupyter

对于我初步实际操作人工智能,不了解使用 Anaconda,为了简化依赖知识,这里仅使用Python的pip3命令来安装jupyter。那么,首先需要确保你的机器正在运行最新版本的 pip,简单的说就是先升级pip,再安装jupyter。 如果你已经安装了 Python3.6(或3.5以上版本),那么 pip 已经安装好了(本部分安装详见参考材料[1])。要升级到最新的版本,请参照下面的代码:

D:\Python\Python36>python -m pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/c2/d7/90***/pip-18.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 504kB/s
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Uninstalling pip-9.0.1:
      Successfully uninstalled pip-9.0.1
Successfully installed pip-18.1

D:\Python\Python36>python -m pip install jupyter

2. 启动Jupyter

安装Jupyter成功后,详见如下目录,其中启动文件jupyter-notebook.exe在scripts目录下。

D:\Python\Python36>dir scripts
 驱动器 D 中的卷是 DATA
 卷的序列号是 A611-0321

 D:\Python\Python36\scripts 的目录

2019/01/16  20:10    <DIR>          .
2019/01/16  20:10    <DIR>          ..
......
2019/01/16  20:10           102,759 jupyter-nbconvert.exe
2019/01/16  20:10           102,758 jupyter-nbextension.exe
2019/01/16  20:10           102,757 jupyter-notebook.exe

其中,PATH环境变量中包括“D:\Python\Python36\Scripts;D:\Python\Python36\”,所以,在D:\Python\Python36\目录下,直接键入jupyter-notebook启动jupyter服务和浏览器端(注意:浏览器带有Token),如下所示。

D:\Python\Python36>jupyter-notebook
[I 20:14:54.206 NotebookApp] Writing notebook server cookie secret to C:\Users\xiaoyw\AppData\Roaming\jupyter\runtime\notebook_cookie_secret
[I 20:14:54.777 NotebookApp] Serving notebooks from local directory: D:\Python\Python36
[I 20:14:54.777 NotebookApp] The Jupyter Notebook is running at:
[I 20:14:54.779 NotebookApp] http://localhost:8888/?token=93dc1f379c3c25765b205ba5ebc590dc1e628df417902213
[I 20:14:54.780 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 20:14:54.800 NotebookApp]

    To access the notebook, open this file in a browser:
        file:///C:/Users/xiaoyw/AppData/Roaming/jupyter/runtime/nbserver-7564-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=93dc1f379c3c25765b205ba5ebc590dc1e628df417902213

粘贴“http://localhost:8888/?token=93dc1f379c3c25765b205ba5ebc590dc1e628df417902213”,在Chrome浏览器中打开操作界面。
在这里插入图片描述
选择“New->Python3”,创建新的代码(启动jupyter notebook之后,可以看到只有一个kernel存在,关于Python虚拟环境,另辟专题讨论)。

为了方便操作,在桌面创建快捷。

如果想终止jupyter notebook的服务,可在开启这个服务的终端窗口,同时按下组合键“CTRL+C”,来终止它。

3. Tensorflow的Hello World

新建Python代码,如下图所示逐行写入代码,实现输出预期结果“Hello, TensorFlow”。
在这里插入图片描述

散点图示例[3]

import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
 
#表示直接在浏览器中显示matplotlib图表
%matplotlib inline 
 
a = tf.random_normal([2,20]) #定义2x20的随机数矩阵
sess = tf.Session()  #启动一个tensorflow会话
out = sess.run(a)    # 用在sess会话里执行a,结果放out里
x, y = out               
 
plt.scatter(x, y)    #用pyplot创建一系列散列点,坐标为x和y
plt.show()
sess.close()

在这里插入图片描述

4. 关于TensorFlow的数据流图(计算图)

数据流图是TensorFlow中最重要也最基础的概念,它将数据看作“流”、将数据处理算法看作节点,从而任意一种复杂算法都能够用一张图来表示。而TensorFlow使用张量(Tensor)来表示所有类型的数据,相应的数据流图便称为Tensor Flow Graph。比如训练一个神经网络,或如下示例单输入神经元,TensorFlow内部会将运算过程表示为一个数据流图。
在这里插入图片描述
如上图所示,数据流图由节点和有向边组成,节点代表操作(计算、存储等),有向边代表数据,这里就是指张量。
在这里插入图片描述
数据流是一种用于并行计算的常用编程模型。在数据流图中,节点表示计算单元,边缘表示计算使用或产生的数据。例如,在 TensorFlow 图中,tf.matmul 操作对应于单个节点,该节点具有两个传入边(要相乘的矩阵)和一个传出边(乘法结果)。

5. TensorBoard展示、分析数据流图

演示“单输入神经元”代码:

import tensorflow as tf

weight = tf.Variable(1.0, name="weight")
input_value = tf.constant(0.5, name="input_value")
expected_output = tf.constant(0.0, name="expected_output")
model = tf.multiply(input_value,weight, "model")   #计算模型为input_value与weight的乘积
loss_function = tf.pow(expected_output - model, 2, name="loss_function")  #损失函数为输出差的平方

optimizer = tf.train.GradientDescentOptimizer(0.025).minimize(loss_function)  #梯度下降优化

for value in [input_value, weight, expected_output, model, loss_function]:
    tf.summary.scalar(value.op.name, value)

summaries = tf.summary.merge_all()
sess = tf.Session()
# 训练过程中直接向日志文件添加数据,日志文件为'log_simple_stats'
summary_writer = tf.summary.FileWriter('log_simple_stats', sess.graph)

sess.run(tf.global_variables_initializer())

for i in range(100):
    summary_writer.add_summary(sess.run(summaries), i)
    sess.run(optimizer)

启动Jupyter Notebook,写入上面代码,如下图所示,并运行此段代码。
在这里插入图片描述
将在python的目录下,产生日志文件夹为“log_simple_stats”,并在文件夹中有一文件,如下图所示:在这里插入图片描述
启动Tensorboard(帮助hellp描述如下, For example tensorboard --logdir mylogdir or `tensorboard --db sqlite):

D:\Python\Python36>tensorboard --logdir log_simple_stats
TensorBoard 1.10.0 at http://DESKTOP-KLSHRU3:6006 (Press CTRL+C to quit)

注:打开防火墙阻止端口6006为开放。浏览器访问地址为:http://DESKTOP-KLSHRU3:6006

如下图所示,在浏览器中可以看到数据流图各个节点的情况,可以通过菜单上的“GRAPHS”,切换到数据流图界面。
在这里插入图片描述
如下图所示,为数据流图的图形界面:
在这里插入图片描述
如果想终止TensorBoard的服务,可在开启这个服务的终端窗口,同时按下组合键“CTRL+C”,来终止它。

针对TensorFlow中纷繁复杂的数据流图,从不同方面进行了优化,并向开发者提供了一个结构清晰、细节充分的层次化算法视图,大大提高了用户在TensorFlow中设计、实现、调试深度学习算法的效率。不同于其他基于神经网络结构、或是训练优化过程的可视化方法,该方法借助数据流图强大的表达能力,能够从顶层概念到实现细节等多个层面来表现深度学习算法,其思路值得我们借鉴和学习[5]

参考:

[1]《Windows10(64bit)环境下Python3 + Tensorflow安装》 CSDN博客 肖永威 2018.08
[2]《机器学习新手必看:Jupyter Notebook入门指南》 CSDN博客 人工智能头条 翻译 | 张建军 2018.05
[3]《TensorFlow学习笔记[1]: TensorFlow安装及在Jupyter notebook中用Pythond代码并生成散列点图》 CSDN博客 gobitan 2016.10
[4]《TensorFlow 图和会话》 TensorFlow中文社区 2018.11
[5]《对TensorFlow中数据流图的可视分析(Visualizing Dataflow Graphs of Deep Learning Models in TensorFlow)》PKU Visualization Blog 北京大学可视化与可视分析博客 Chufan Lai 2018.01
[6]《Deep Learning with TensorFlow》 Giancario Zavvone等著 李志 译 人民邮电出版社 2018.03

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
安装TensorFlow需要先安装Jupyter Notebook,以下是安装Jupyter NotebookTensorFlow的步骤: 1. 安装Anaconda:首先,你需要安装Anaconda,它是一个用于数据科学和机器学习Python发行版。你可以从Anaconda官方网站下载适合你操作系统的安装包,并按照官方指南进行安装。 2. 创建环境:打开Anaconda Navigator,点击"环境"选项卡,然后点击"创建"按钮。在弹出的对话框中,输入环境名称(例如"tensorflow_env"),选择Python版本(建议选择Python 3.x),然后点击"创建"按钮。 3. 安装Jupyter Notebook:在Anaconda Navigator中,切换到新创建的环境(例如"tensorflow_env"),然后点击"安装"按钮。在搜索框中输入"jupyter notebook",选择Jupyter Notebook并点击"应用"按钮进行安装。 4. 启动Jupyter Notebook:在Anaconda Navigator中,切换到新创建的环境(例如"tensorflow_env"),然后点击"启动"按钮。这将打开一个终端窗口,并自动启动Jupyter Notebook。 5. 创建Notebook:在Jupyter Notebook的主界面中,点击右上角的"New"按钮,选择"Python 3"来创建一个新的Python Notebook。 6. 安装TensorFlow:在新创建的Notebook中,使用以下命令来安装TensorFlow: ``` !pip install tensorflow ``` 7. 导入TensorFlow:在Notebook中,使用以下代码来导入TensorFlow: ``` import tensorflow as tf ``` 至此,你已经成功安装了Jupyter NotebookTensorFlow,并可以在Notebook使用TensorFlow进行机器学习和深度学习的开发。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肖永威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值