前言
Tensorflow的前身时谷歌的神经网络算法库DistBelief,被广泛应用于各类机器学习、深度学习算法的编程实现。Tensorflow具有实现代码简洁、编程范式灵活、分布式深度学习算法执行效率高、多语言API支持、CPU/GPU部署方便、良好的可扩展性、可移植性及在学术研究和产品研发两端取得良好平衡等优秀特性。TensorFlow
由Tensor(张量)和Flow(流)两个单词组成,意味着"张量的流动",形象地描述了TensorFlow是以张量数据和流计算的方式来运行整个程序,它把任意维度的数据都统一用张量来表示
。
TensorFlow从本质上看就是一个基于数据流编程的符号数学系统,其设计之初就被定义为灵活且通用的端到端深度学习平台。
技术特点
TensorFlow相比其他框架具有如下优点 :
- 运算性能强劲。 线性代数编译器(XLA)可以帮助TensorFlow在CPU、GPU、TPU、嵌入式设备等平台上更快速地运行机器学习模型的训练与推理任务。同时提供大量针对不同软硬件环境的优化配置参数,可以根据需要进一步提升计算性能。
- 框架设计通用。TensorFlow不仅可以用机器学习和深度神经网络方面的研究,而且也可以广泛用于其他计算领域。同时它提供了高层封装API、底层原生API,用于帮助用户快速实现算法模型及分布式并行模式。
- 支持生产环境部署。它支持使用同一套API实现探索环境和生产环境的部署。
- 语言接口丰富。它的核心层由C++实现,应用层使用SWIG等技术封装,提供了多语言API的支持。目前支持的语言有Python、C、C++、Java、Go、NodeJs、R、Julia等。
- 端云协同计算。它同时支持在云侧(服务端)和端侧(移动设备等终端)运行。
组件结构
TensorFlow是一个包含数十万行代码的大型软件,其组件结构较为复杂。由于其代码组织合理、文档资料充分,通过这些信息可以将它的软件结构进行不同层次的抽象,抽象之后的组件结构示意图如下:
外围项目
Google官方团队及开源贡献者在TensorFlow社区开设了若干算法模型库及人工智能应用程序项目。这些项目可以直接复用来加快自己的项目开发进度,提升自己的模型与应用设计水平。
TensorFlow运行时核心库
构成TensorFlow的主体是其运行时(RunTime)核心库,这个核心库是指通过pip命令等方式安装TensorFlow之后,部署到Lib\site-packages
或类似目录中的动态链接库文件。生成这个库的C++源代码大致分为3个层次:分布式运行时、公共运行时和算子核函数。
- 分布式运行时:实现数据流图
计算
的基本逻辑 - 公共运行时:实现数据流图的
跨进程协同
计算逻辑 - 算子核函数:包含图上具体操作节点的
算法实现代码
TensorFlow运行时核心库导出的函数接口基于C和C++语言,为了方便其他语言,提供了多语言API层。以python为例,可以使用import tensorflow
导入。
通信及计算库
这库有的是外部组件(如CPU代数计算的Eigen库),也有作为TensorFlow源代码的一部分集成在核心库内部(如用户GPU并行计算的StreamExecutor库)。用户只需要按照软件文档安装好必要的外部依赖包即可。文章来源:https://www.toymoban.com/news/detail-832486.html
基础设施
上述所有都是部署在基础设施上,在服务端的运行场景,最常见的宿主操作系统试试Linux,硬件一般为X86 CPU和NVIDIA GPU。在移动终端的运行场景,宿主机操作系统可以是Android、IOS等,硬件一般为ARM CPU和专用的人工智能芯片。TensorFlow支持原生物理环境、虚拟机、容器,方便构建基于云计算环境的各种应用。文章来源地址https://www.toymoban.com/news/detail-832486.html
到了这里,关于人工智能之Tensorflow技术特点及组件结构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!