序言:俗话说好记性不如烂笔头,在我们学习的过程中,特别是搞程序这一块的,每天的学习的东西有很多,光靠我们的大脑来记忆,那是不怎么可能的,如果可以的话,那你应该去参加最强大脑了。因此我们可以每天在学习完以后,自己把知识点梳理一下,然后写成一个笔记,这样我们如果在以后的工作学习中用到这方面的知识我们也可以通过自己的学习笔记来快速的掌握,我之前也写过文章,但是由于别的事情就没写了,我因此在这立下一个flag,只要自己每天学习到的东西,都会把它整理成文章。在之后我也会整理关于python基础,爬虫,数据分析的几个重要的库(numpy,pandas,scipy,matplotlib)中自己学习的总结。
坚持下去,你发现学习会使你快乐。
1.什么是tensorflow?
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU),服务器,移动设备等等。TensorFlow 最初由Google大脑小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器学习和深度神经网络方面的研究,但这个系统的通用性使其也可广泛用于其他计算领域。
2.基础知识
(1)张量(Tensor)
TensorFlow 内部的计算都是基于张量的,因此我们有必要先对张量有个认识。张量是在我们熟悉的标量、向量之上定义的,详细的定义比较复杂,我们可以先简单的将它理解为一个多维数组:
我们可以通过代码来看一下Tensor
如果我们需要打印出它的值,需要经过Session运行一下(在后面的例子中有)
(2)数据流图在TensorFlow中文社区的首页就有.
(3)Session
TensorFlow 底层是使用C++实现,这样可以保证计算效率,并使用 tf.Session类来连接客户端程序与C++运行时。上层的Python、Java等代码用来设计、定义模型,构建的Graph,最后通过tf.Session.run()方法传递给底层执行。
(4)构建计算图(这里我只举一个简单的例子)
Tensor 即可以表示输入、输出的端点,还可以表示计算单元,如下的代码创建了对两个 Tensor 执行 + 操作的 Tensor:
输出结果为:
下面就要进入我今天学习的重点了:利用TensorFlow进行机器学习的一个简单实例
我就直接先上代码:
具体的解释我都写在了代码里了,下面我们看一下运行的结果:
由上面的结果我们可以看到Weights记过多次的训练从0.6462到0.10000,biases从-0.020到0.29999,从这些数据上可以看出,Weights也越来越接近0.3,biases也越来越接近0.1。我的原始函数是y = 0.1x + 0.3 ,现在计算机通过多次学习,最后得到的函数也无限接近这个了。
上面的例子我也可通过一个通俗的例子来说明:就比如我们现在要通过机器学习来使计算机能够自己识别猫,计算机在学习次数少的前提下,会认不出这个是毛,结果就是输出一只狗。但是在经过上万次的学习,最后得到的参数无限接近猫的参数,这样计算机就会输出猫了。
加油,不仅仅为了自己!!