TensorFlow简介

TensorFlow是一种用于构建和训练机器学习模型的开源库,其核心设计理念是通过数据流图实现高度可扩展性和灵活性。该库支持多种编程语言,如Python和C++,并且能够在包括CPU、GPU和TPU在内的多种平台上高效运行。

TensorFlow简介

TensorFlow是由Tensor(张量)与Flow(数据流)组成的,名字的含义就是让数据流在张量里飞

为了让TensorFlow可以支持不同的程序设计语言接口,并让TensorFlow程序可以在各种平台执行,所有的TensorFlow程序都是先建立“计算图”,这是张量运算和数据处理的流程。我们可以使用TensorFlow提供的模块以不同的程序设计语言建立计算图。TensorFlow提供的模块很强大,我们可以设计张量运算流程,并且构建各种深度学习或机器学习模型。建立计算图完成后,就可以在不同的平台上执行计算图。

计算图中,节点(Node)代表运算,边(Edge)代表张量的数据流。我们可以想象边就是管线,张量数据在管线中流动。经过节点运算后,转换为不同的张量数据。

 

TensorFlow程序设计模式

TensorFlow程序设计模式的核心是计算图,可以分为两部分:建立计算图、执行计算图。

  • 建立计算图

使用TensorFlow提供的模块建立计算图,TensorFlow提供的模块非常强大,可以设计张量运算流程,并且构建各种深度学习或机器学习模型。

  • 执行计算图

建立计算图后,就可以建立Session执行计算图了。在TensorFlow中,Session的作用是在客户端和执行设备之间建立连接。有了这个连接,就可以将计算图在各种不同设备中执行,后续任何与设备之间的数据传输都必须通过Session来进行,并且最后获得执行后的结果。

深度学习是以张量(矩阵)运算模拟神经网络的。所以TensorFlow的主要设计就是让矩阵运算达到最高性能,并且能在各种不同的平台执行。TensorFlow最初由Google的Brain Team团队开发,于2015年11月公开了源代码,在Apache 2.0与开放源代码规范下,所有开发者都可以免费使用。Google希望通过开源社区的分享建立一个庞大的社区,建立共同的标准,让TensorFlow更加完善。

 

TensorFlow架构

TensorFlow的系统结构以C API为界,将整个系统分为「前端」和「后端」两个子系统:

  • 前端系统:提供编程模型,负责构造计算图;
  • 后端系统:提供运行时环境,负责执行计算图。

 TensorFlow架构图如下,

TensorFlow架构图
高级APIKeras、TF-Learn、TF-Slim、TF-Layer
前端程序语言Python、C++
TensorFlow Distributed Execution Engine
平台Windows、Linux、Android、iOS、Raspberry Pi
处理器CPU、GPU、TPU
  • 处理器

CPU:每一台计算机都有中央处理器,可以执行TensorFlow;

GPU:图形处理器,GPU含有高达数千个微小且高效率的计算内核,可以发挥并行计算的强大功能;

TPU:Google为人工智能研发的专用芯片,比GPU的计算性能更佳,目前只部署在Google数据中心,并没对外开放。

  • TensorFlow Distributed Execution Engine(分布式执行引擎)

在深度学习中,最花时间的是模型训练,尤其大型的深度学习模型必须使用大量数据训练,需要数天甚至更长时间,TensorFlow具备分布式计算能力,可同时在数百台机器上执行训练模型,大幅缩短模型训练的时间。

  • 前端程序语言

TensorFlow可以使用多种前端程序语言,例如Python、C++等,但对Python的支持是最好的,Python具有程序代码简明、易学习、高生产力的特质,面向对象、函数式的动态语言,应用非常广泛。

  • 高级API

TensorFlow是比较低级的深度学习API,所以用程序设计模型时必须自行设计:张量乘积、卷积等底层操作,好处是我们可以自行设计各种深度学习模型,但是缺点是开发时需要编写更多程序代码,并且需要花更多时间。所以网上的开发社区以TensorFlow为底层开发很多高级的深度学习API,例如Keras、TF-Learn、TF_Slim、TF_Layer等。这样让开发者使用更简洁、更可读性的程序代码就可以构建出各种复杂的深度学习模型。

参考链接:

TensorFlow中文社区首页

http://www.tensorfly.cn/

http://www.tensorfly.cn/tfdoc/how_tos/overview.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值