python notebook软件_使用Python开发工具Jupyter Notebook学习Tensorflow!

【人工智能头条导读】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

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

1

2

3

4

5

6

7

8

9

10

11

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

2019/01/16 20:10

......

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

1

2

3

4

5

6

7

8

9

10

11

12

其中,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.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:

1

2

3

4

5

6

7

8

9

10

11

12

在这里插入图片描述

选择“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

sess.close()

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

在这里插入图片描述

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)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

启动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)

1

2

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

如下图所示,在浏览器中可以看到数据流图各个节点的情况,可以通过菜单上的“GRAPHS”,切换到数据流图界面。

在这里插入图片描述

如下图所示,为数据流图的图形界面:

在这里插入图片描述

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jupyter Notebook 是一种非常流行的交互式编程环境,可以直接在浏览器中编写和运行代码。当使用 Jupyter Notebook 时,由于它是一个交互式的环境,会占用大量的内存。因此,释放内存是非常重要的。 以下是一些释放内存的方法: 1. 删除不需要的对象:当你完成一个操作之后,可以通过删除不再需要的对象来释放内存。在 Python 中,可以使用 del 语句来删除对象。例如,如果你创建了一个名为 x 的列表,你可以通过输入 del x 来删除它。 2. 使用垃圾回收:Python 中有一个垃圾回收机制,它会自动回收不再使用的内存。你可以使用 gc 模块来手动调用垃圾回收。例如,输入 import gc 之后,可以使用 gc.collect() 来手动回收内存。 3. 重新启动内核:如果你的 Notebook 占用了大量的内存,你可以尝试重新启动内核。这将会清空所有的变量和对象,释放内存。在 Jupyter Notebook 中,你可以通过点击 Kernel -> Restart 来重新启动内核。 4. 使用 %reset 命令:在 Jupyter Notebook 中,你可以使用 %reset 命令来清空所有的变量和对象。在 Notebook 中输入 %reset 并按下回车键即可。 5. 使用 magic 命令:Jupyter Notebook 中有很多 magic 命令,可以帮助你管理内存。例如,你可以使用 %memit 命令来测量一个代码块的内存使用情况。你也可以使用 %prun 命令来测量一个函数的性能和内存使用情况。 总之,释放内存是非常重要的。如果你的 Notebook 占用了大量的内存,你的代码将变得非常缓慢。因此,你应该时刻关注你的内存使用情况,并采取相应的措施来释放内存。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值