有书共读】《TensorFlow实战》之 3-TF入门

1、Tensorflow计算模型

1.1 Tensor & FLow的概念

这一章主要介绍Tensorflow的计算模型,数据模型和运行模型。
TensorFlow中的tensor,即张量,可以简单的理解为***数组。flow,即表示了张量之间通过计算相互转化的过程。
以下代码段表示了计算图的简单使用:

import tensorflow as tf
a = tf.constant([1.0, 2.0], name="a")
b = tf.constant([2.0, 3.0], name="b")
result = a + b

当然,也可查看张量所属的计算图

print(a.graph is tf.get_default_graph())

2、Tensor 张量

如前所述,tensor可以简单的看作***数组。
但是,张量在TensorFlow中的实现并不是直接采用数组的形式,它只是对TensorFlow中的运算结果的引用。在张量中并没有真正保存数字,它保存的是如何得到这些数字的计算过程。
参照前述代码,如果我们把result打印出来,会得到:

Tensor("add:0", shape=(2,), dtype=float32)

张量的使用有两类基本类型。
第一类是对中间计算结果的引用,比如result = a + b.
第二类是当计算图构造完成之后,张量可以用来获得计算结果。还是以result为例子,我们可以执行以下语句得到result的计算结果。

tf.Session().run(result)

3、会话

tf.Session().run(result)

这条语句中,我们看到了Session()这一个模块。Session就是来执行定义好的运算。
其基本格式如下:

sess = tf.Session()
sess.run()
sess.close()

为了解决异常退出时资源释放的问题,TF可以通过python的上下文管理器来使用会话。如下所示:

with tf.Session() as sess:
    sess.run()

这个时候,我们不再需要"Session.close()"函数来关闭会话。

4、TensorFlow实现神经网络

TensorFlow提供了一个TensorFlow游乐场(一个网页),可以训练简单的神经网络,其实现了可视化训练过程的工具,类似笔者这种新手,获益良多。
其后,本章介绍了前向传播算法以及常见神经网络参数。至于前向传播算法,相信大家都耳熟能详了。下面以3.4.5小节提供的二分类样例程序作为本章笔记的结束。
源码就不贴上来了,太占空间,我们看看它的运行结果。
图片说明
通过这个结果可以发现随着训练的进行,交叉熵逐渐变小。交叉熵越小说明预测的结果和真实的结果差距越小。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务