TensorFlow?是一个基于数据流编程(dataflowprogramming)的符号数学体系,被广泛使用于各类机器学习(machinelearning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief。
Tensorflow具有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛使用于谷歌内部的产品开发和各范畴的科学研究。
TensorFlow由谷歌人工智能团队谷歌大脑(GoogleBrain)开发和保护,具有包括TensorFlowHub、TensorFlowLite、TensorFlowResearchCloud在内的多个项目以及各类使用程序接口(ApplicationProgrammingInterface,API)。自2015年11月9日起,TensorFlow根据阿帕奇授权协议(Apache2.0opensourcelicense)开放源代码。
tensorflow入门教程
第一部分入门教程
引言
咱们要解决的是一个过于简略且不现实的问题,但其好的一面是便于咱们了解机器学习和TensorFlow的概念。咱们要猜测一个基于单一特征(房间面积/平方米)的单标量输出(房价/美元)。这样做消除了处理多维数据的需要,使咱们能够在TensorFlow中只专注于确定、实现以及练习模型。
机器学习简介
咱们从一组收集到的数据点开端(见下图),每个数据点代表两个值之间的联系——输出(房价)与影响因素(房子面积)。
然而咱们无法猜测没有数据点的特征的值(见下图)。
咱们能够运用机器学习来发掘它们之间的联系(见下图的「最佳拟合猜测曲线」),即给定一个不属于数据点的特征值,咱们能够精确地猜测出输出(特征值和猜测线的交点)。
过程一:挑选一个模型
1.模型品种
为了运用机器学习来做猜测,咱们需要挑选一个能够拟合收集到的数据的最佳模型。
咱们能够挑选一个线性(直线)模型,并经过改动其陡度/梯度和方位对其进行调整,然后匹配数据点。
咱们也能够挑选一个指数(曲线)模型,并经过改动其曲率(curvature)和方位对其进行调整,然后匹配同一数据点集。
2.本钱函数
为了比较哪个模型拟合得更严密,数学上咱们将最佳拟合界说为一个需要被最小化的本钱函数。本钱函数的一个简略样例是每个数据点所代表的实践输出与猜测输出之间误差的绝对值总和(实践成果到最佳拟合曲线的笔直投影)。用图表表明,本钱函数被描述为下表中蓝色线段的长度和。
注意:更精确地说,本钱函数往往是实践输出和猜测输出之间的方差,因为差值有时是负数;这也称为最小二乘法。
3.线性模型简介
秉持简练精力,咱们将运用线性模型来对数据点进行建模。线性模型的数学表明是:
y=W.x+b
Where:
x:housesize,insqm
y:predictedhouseprice,in$
为了调整模型来更好地拟合数据点,咱们能够这样做:
1)调整W来改动线性模型的梯度
2)调整b来改动线性模型的方位
经过运用许多个W、b的值,终究咱们能够找到一个最佳拟合线性模型,能够将本钱函数降到最小。
除了随机测验不同的值,有没有一个更好的方法来快速找到W、b的值?
4.梯度下降
如果你企图从山上下降到最低点,许多方法下的下降趋势并不明显!
其最佳方法是履行梯度下降:
在当时方位以最陡的下降梯度确定方向
在该方向上采纳步长X
重复&改写;这就是练习过程
最小化本钱函数是相似的,因为本钱函数就像是起伏的山,咱们想要找到其中的最低点,咱们能够经过梯度下降相似地实现。
现在咱们有了线性模型、本钱函数和梯度下降的概念,能够开端运用TensorFlow了。
过程二:在TensorFlow中树立模型
1.TensorFlow中的线性模型
TensorFlow的2个基本组件是:
1)占位符(Placeholder):表明履行梯度下降时将实践数据值输入到模型中的一个进口点。例如房子面积(x)和房价(y_)。
2)变量:表明咱们企图寻觅的能够使本钱函数降到最小的「good」值的变量,例如W和b。
然后TensorFlow中的线性模型(y=W.x+b)就是:
2.TensorFlow中的本钱函数
与将数据点的实践房价(y_)输入模型相似,咱们创立一个占位符。
本钱函数的最小方差就是:
3.数据
因为没有房价(y_)和房子面积(x)的实践数据点,咱们就生成它们。
简略起见,咱们将房价(ys)设置成永远是房子面积(xs)的2倍。
4.梯度下降
有了线性模型、本钱函数和数据,咱们就能够开端履行梯度下降然后最小化代价函数,以取得W、b的「good」值。
0.00001是咱们每次进行练习时在最陡的梯度方向上所采纳的「步」长;它也被称作学习率(learningrate)。
过程三:练习模型
练习包含以预先确定好的次数履行梯度下降,或者是直到本钱函数低于某个预先确定的临界值为止。
1.TensorFlow的怪异
所有变量都需要在练习开端时进行初始化,不然它们可能会带有之前履行过程中的残余值。
2.TensorFlow会话
尽管TensorFlow是一个Python库,Python是一种解说性的言语,可是默许情况下不把TensorFlow运算用作解说性能的原因,因而不履行上面的init。相反TensorFlow是在一个会话中进行;创立一个会话(sess)然后运用sess.run()去履行。
相似地咱们在一个循环中调用withinsess.run()来履行上面的train_step。
你需要将由x,y_所组成的实践数据输入再提供给输入,因为TensorFlow将train_step分解为它的隶属项:
隶属项的底部是占位符x,y_;而且正如咱们之前说到的,tf.placeholders是用来表明所要提供的实践数据点值房价(y_)和房子面积(x)的方位。
成果
循环中的print句子将显示TensorFlow如何在每次迭代中学习W和b的「good」值。
小结
咱们已经以最简略的方式学习了机器学习;从一个单一特征猜测成果。(为简略起见)咱们挑选了一个线性模型来拟合咱们的数据点,界说一个本钱函数来表明最佳拟合,并经过重复调整其梯度变量W与方位变量b来练习咱们的模型,使本钱函数降到最小。
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com