艾特商业网

互联网分析:什么是TensorFlow 机器学习库解释

更新时间:2021-07-18 12:26:32

导读 互联网是高科技的产物,是历史发展、社会进步、人类智慧的结晶;是人类迄今所拥有的容量最大、内容最广、传递速度最快的信息中心。全球每天
互联网是高科技的产物,是历史发展、社会进步、人类智慧的结晶;是人类迄今所拥有的容量最大、内容最广、传递速度最快的信息中心。全球每天有四亿人使用互联网,上网人数占世界人口的百分之6.互联网为我们了解时事、学习知识、与人沟通、休闲娱乐等提供了便捷的条件,接下来这篇文章给大家说说互联网科技的一角。

机器学习是一门复杂的学科。但是,由于机器学习框架(例如Google的TensorFlow)可以简化获取数据,培训模型,提供预测和改进未来结果的过程,因此实施机器学习模型远不如以前那么令人生畏和困难。

TensorFlow由Google Brain团队创建,是一个用于数值计算和大规模机器学习的开源库。TensorFlow将大量机器学习和深度学习(又称神经网络)模型和算法捆绑在一起,并通过一个常见的比喻使它们变得有用。它使用Python提供方便的前端API,用于使用框架构建应用程序,同时在高性能C ++中执行这些应用程序。

TensorFlow可以训练和运行深度神经网络,用于手写数字分类,图像识别,字嵌入,循环神经网络,用于机器翻译的序列到序列模型,自然语言处理和基于PDE(偏微分方程)的模拟。最重要的是,TensorFlow支持大规模生产预测,使用相同的模型进行培训。

TensorFlow允许开发人员创建数据流图 -描述数据如何通过图或一系列处理节点移动的结构。图中的每个节点表示数学运算,并且节点之间的每个连接或边缘是多维数据阵列或张量。

TensorFlow通过Python语言为程序员提供了所有这些功能。Python易于学习和使用,并提供方便的方式来表达高级抽象如何耦​​合在一起。TensorFlow中的节点和张量是Python对象,TensorFlow应用程序本身就是Python应用程序。

但是,实际的数学运算不是在Python中执行的。通过TensorFlow可用的转换库被编写为高性能C ++二进制文件。Python只是指导各个部分之间的流量,并提供高级编程抽象以将它们连接在一起。

TensorFlow应用程序可以在大多数方便的目标上运行:本地计算机,云中的集群,iOS和Android设备,CPU或GPU。如果您使用Google自己的云,则可以在Google的自定义TensorFlow处理单元(TPU)芯片上运行TensorFlow,以进一步加速。但是,由TensorFlow创建的结果模型可以部署在大多数用于提供预测的设备上。

截至2019年6月的TensorFlow 2.0,在很多方面根据用户反馈修改了框架,以便更容易使用(例如,通过使用相对简单的 Keras API进行模型培训)和更高性能。通过新的API,分布式培训更易于运行,并且对TensorFlow Lite的支持使得可以在更多种平台上部署模型。但是,为早期版本的TensorFlow编写的代码必须重写 - 有时只是略微,有时是显着的 - 以最大限度地利用新的TensorFlow 2.0功能。

TensorFlow的好处

TensorFlow为机器学习开发提供的最大好处是抽象。开发人员可以专注于应用程序的整体逻辑,而不是处理实现算法的细节,或者找出将一个函数的输出与另一个函数的输出联系起来的正确方法。TensorFlow负责幕后细节。

TensorFlow为需要调试和获取TensorFlow应用程序内省的开发人员提供了额外的便利。在渴望执行模式可以评估并分别与透明修改每个图形的操作,而不是构建整个图形作为一个单一的不透明的对象,并在一次评估这一切。该TensorBoard可视化套件可让您检查和配置文件通过一个互动的,基于Web的仪表板的方式运行方式的图形。

TensorFlow在谷歌的A-list商业服装支持下也获得了许多优势。Google不仅推动了该项目背后的快速发展,而且围绕TensorFlow创建了许多重要产品,使其更易于部署和使用:上述TPU芯片可加速Google云端的性能; 用于共享使用框架创建的模型的在线中心 ; 浏览器和移动设备友好的框架化身; 和更多。

需要注意的是:TensorFlow实施的一些细节使得很难获得某些培训工作的完全确定性的模型训练结果。有时,在一个系统上训练的模型与在另一个系统上训练的模型略有不同,即使它们被输入完全相同的数据。造成这种情况的原因是滑的,例如,如何随机数种子是在哪里,使用GPU的时候或某些非确定性的行为)。也就是说,可以解决这些问题,TensorFlow的团队正在考虑更多控制来影响工作流中的确定性。

TensorFlow与一系列其他机器学习框架竞争。PyTorch,CNTK和MXNet是三个主要框架,可满足许多相同的需求。下面我已经注意到它们在TensorFlow上脱颖而出的地方。

PyTorch除了使用Python构建之外,还与TensorFlow有许多其他相似之处:引擎盖下的硬件加速组件,高度交互式开发模型,允许设计即用工作,以及许多有用的组件。PyTorch通常是快速开发需要在短时间内启动和运行的项目的更好选择,但TensorFlow赢得了大型项目和更复杂的工作流程。

像TensorFlow这样的Microsoft认知工具包CNTK使用图形结构来描述数据流,但最关注的是创建深度学习神经网络。CNTK可以更快地处理许多神经网络作业,并且拥有更广泛的API(Python,C ++,C#,Java)。但是CNTK目前还不像TensorFlow那样容易学习或部署。

亚马逊采用的Apache MXNet是AWS上首屈一指的深度学习框架,可以跨多个GPU和多台机器进行几乎线性扩展。它还支持广泛的语言API-Python,C ++,Scala,R,JavaScript,Julia,Perl,Go-虽然它的原生API不像TensorFlow那样令人愉快。

免责声明:本文由用户上传,如有侵权请联系删除!