0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TensorFlow:面向公众的机器学习库

DPVg_AI_era 来源:未知 作者:李倩 2018-11-12 10:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

TensorFlow今天3岁了。2015年的11月9日,谷歌开源TensorFlow,迅速成为最受欢迎的机器学习开源框架,构建起庞大的开发者生态。一路走来,TensorFlow收获众多辉煌,也有批评,遭遇强手劲敌,目前仍旧稳居处于开源框架王者之位。TensorFlow 2.0也已在研发中。谨以本文祝TensorFlow生日快乐,为TensorFlow发展做出贡献的开发者也辛苦了!

TensorFlow今天3岁了!

作为全球最受欢迎的机器学习开源框架,TensorFlow 发展的3年见证了机器学习和人工智能领域的快速发展和变化,与人类的孩子一样,不断学习,遭到批评,遇到对手,走向更大跟广阔的环境。

接下来,新智元带你简单回顾过去3年TensorFlow 的发展,以及关于TensorFlow的一些你或许不知道的小知识。

TensorFlow:面向公众的机器学习库

TensorFlow其实是谷歌自豪的研究级机器学习基础设施、第一代专有机器学习系统DistBelief 的继承者,该系统负责DeepDream这一成就。

DeepDream生成的威廉王子一家画像

2009年,Hinton领导的研究小组大大减少使用DistBelief的神经网络的错误数量,通过Hinton在广义反向传播的科学突破。最值得注意的是,Hinton的突破直接使Google语音识别软件中的错误减少至少25%。

而后,谷歌指派计算机科学家,如Geoffrey Hinton和Jeff Dean,简化和重构DistBelief的代码库,使其变成一个更快、更健壮的应用级别代码库,形成了TensorFlow。

TensorFlow的计算使用有状态的数据流图表示。TensorFlow的名字来源于神经网络对多维数组执行的操作,这些多维数组被称为张量。

通过将TensorFlow的代码开源,谷歌为世界各地的公司和计算机科学家打开了在自己的产品和研究中实施尖端机器学习算法的大门。

初期爆发式发展被批垄断生态,用户说放下TensorFlow立地成佛?

虽然在短时间内迅速成长为Github最受欢迎的深度学习开源项目,并在全球范围内建立起了广泛的开发者社区,但一路走来,TensorFlow 也并非没有遭遇批评和对手。

2016年6月,Jeff Dean称在GitHub有1500个库提到了TensorFlow,其中只有5个来自谷歌。截止2017年3月,TensorFlow 得到14000+次commit,超过5500标题中出现过TensorFlow的Github project以及在Stack Overflow上有包括5000+个已被回答的问题,平均每周80+的issue提交。

初期爆发式的发展形成一家独大的态势,引起了业内人士对TensorFlow 所构成的潜在生态危害的担忧,这种趋势在2016年开始出现,比如地平线创始人余凯博士曾在微信朋友圈呼吁:

算是一个郑重的声明吧:一直以来我非常钦佩谷歌的Jeff Dean在MapReduce和谷歌大脑(TensorFlow)等项目上的杰出成就。但是,我必须指出,放任TensorFlow成为世界上占统治地位的人工智能开发平台对世界是危险的。尽管这个平台目前是开源的,但是随着时间的推移,人工智能变得越来越强大,这个系统会变得极端复杂到失去透明性,而且会很可怕的变成全世界数据,计算,硬件,编译器等的标准制定者。这样会导致一个不健康的生态,阻碍年轻人掌握技术的自由,让个人,公司甚至国家在人工智能领域的自主发展,最终被一家商业公司所控制。这不是危言耸听。可惜现在绝大部分人都还意识不到这点。尤其是在中国。我呼吁大家都来使用Caffe,Mxnet等更加开放中兴的开源系统,避免使用TensorFlow

后来,随着 PyTorch、MXNet、PaddlePaddle 等新框架的出现,开发者有了更多选择,生态进入良性竞争状态后,这样的担忧也开始褪去。

其次是TensorFlow 本身使用性的问题。零星的“不好用”、“用不好”等抱怨之火,在2017 年下半年爆发,引爆点是一篇题为 “TensorFlow Sucks”的博文,作者NicolasD.Jimenez 在肯定 TensorFlow 优点的同时,指出人们对 TensorFlow 有一种盲目崇拜,TensorFlow 缺乏灵活性,在设计思想和使用上不便于快速原型部署,而且相关的库太过高级无法轻松使用。

Quora 上开始出现“放弃使用 TensorFlow”的声音。在差不多的时间里,中国问答网站知乎上也出现了提问“TensorFlow 有哪些令人难以接受的地方?” 引发了众多的关注和讨论。正如问题描述中所说,“没有工具是完美的,TensorFlow 亦然,现在是时候来吐槽一下了”。

针对开发者提出的主要问题,谷歌后来都做了改进,比如推出动态图模型,能够保存和重用模型。

劲敌 PyTorch 出现

虽有 CNTK、Theano、MXNet、PaddlePaddle,如果说 TensorFlow 最强的对手,莫过于2017年 3月 Facebook 开源的 PyTorch,以灵活轻便等优势迅速赢得了一大批开发者,其中不乏从 TensorFlow 社区转来的人。

今年5月,PyTorch 1.0 正式公开,新框架将 PyTorch 0.4与Caffe2合并,整合ONNX格式,让开发者可以无缝地将AI模型从研究转到生产;今年 10月,Facebook召开了首届 PyTorch开发者大会,其社区发展大有超越TensorFlow 之势。

根据 Reddit上一位博主贴出的统计,2018年至2019年,ICRL论文中所涉及到的主流框架工具TensorFlow、PyTorch和Keras的搜索结果数,仅在一年时间内,PyTorch数据增长近3倍:

TensorFlow:228→266

Keras:42→56

PyTorch:87→252

更早一些,今年3月,手握 ArXiv Sanity 大数据、现在主管特斯拉人工智能部门的 Andrej Karpathy,也给出了精确的排名结果(过去一个月内)。

各个框架在论文中被提到(单次计算)的比例分别是:

TensorFlow 14.3%

PyTorch 4.7%

Keras 4.0%

Caffe 3.8%

Theano 2.3%

Torch 1.5%

MXNet、Chainer 和 CNTK 均小于 1%:

TensorFlow 2.0 要来了!

虽有种种问题,但TensorFlow 在机器学习开源框架中的王者地位是毋庸置疑的。

今年8 月,TensorFlow 2.0 预览版即将发布的消息传出,TensorFlow 开发者团队表示,为了适应计算硬件、机器学习研究和商业部署这三年的快速发展,更好地满足广大用户的需求,TensorFlow 2.0 已在研究之中。

用户对TensorFlow 2.0的期望包括:

Eager execution应当是2.0的核心功能。它将用户对编程模型的期望与TensorFlow更好地结合起来,并且应该使TensorFlow更易于学习和应用。

通过交换格式的标准化和API的一致性,支持更多平台和语言,并改善这些组件之间的兼容性和奇偶性。

将删除已弃用的API并减少重复数量,否则会给用户造成混淆。

TensorFlow 三年发展里程碑

TensorFlow是谷歌大脑的第二代机器学习系统。

从0.8.0版本(发布于2016年4月)开始本地的支持分布式运行。

从0.9.0版本(发布于2016年6月)开始支持iOS

从0.12.0版本(发布于2016年12月)开始支持Windows系统。该移植代码主要由微软贡献。

1.0.0版本发布于2017年2月11日。虽然参考实现运行在单台设备,TensorFlow可以运行在多个CPUGPU(和可选的CUDA扩展和图形处理器通用计算的SYCL扩展)。

2015年11月9日

宣布TensorFlow开源,根据 Apache 2.0 许可并以开放源代码软件包的形式发布了 TensorFlow API 和一个参考实现。

2015年12月

发布v0.6,支持GPU,Python 3.3

2016年4月

发布v0.8,分布式TensorFlow

2016年11月

发布v0.11,支持Windows

2017年2月

在首届TensorFlow开发者峰会上,正式发布TensorFlow 1.0。v1.0的性能得到改进,API变得稳定。TensorFlow1.0主要改进了机器学习功能,发布了XLA的实验版本,对Python和Java用户开放,提升了debugging,并且加入和改进了一些高级API,其中包括Keras。

2017年4月

发布v1.1,增加针对tf.keras的特性

2017年8月

发布v1.3,增加高级API,canned estimators,更多模型,原始TPU支持

2017年11月

发布v1.5,增加动态图机制Eager Execution 和用于移动端的轻量级TensorFlow Lite版本

2018年3月

发布TF Hub, TensorFlow.js, 和TensorFlow Extended (TFX)

2018年5月

发布v1.6,增加支持Cloud TPU,模型和pipeline

2018年6月

发布v1.8,Distribution Strategy API, TensorFlow Probability

2018年8月

发布v1.10,整合Cloud Bigtable

2018年10月

发布v1.12,大量API改进,包括改进XLA稳定性和性能,改进Keras模型支持

2019年

即将发布TensorFlow 2.0

结语

支持深度学习和机器学习研究的软件生态系统一直在快速发展,开源软件已经是常态;有各种各样的框架可用,满足从探索新想法到将它们部署到生产中的需求;而大型企业在激烈竞争中支持不同的软件栈。

在众多新工具涌现的同时,也有功成名退的老将,比如Theano,但这些年来 Theano 开发者团队所提出的大多数创新,现在已经被其他框架采用和完善。例如,将模型表达为数学表达式,重写计算图以获得更好的性能和内存使用,GPU上的透明执行,更高阶的自动微分等,都成为了主流想法。

微软和 Facebook 发起了开源人工智能项目ONNX(Open Neural Network Exchange),不久后亚马逊AWS 也宣布加入并推出ONNX-MXNet 开源Python 软件包。除了亚马逊,AMDARM、华为、IBM、英特尔高通都宣布将支持ONNX,形成强大的深度学习开源联盟。

有人说控制了开源工具,就控制了整个生态;但同时,这些巨头也在去中心化,打通全球数据连接。开放生态系统的基础,使 AI 更容易获取并富有价值。开发人员可以为其任务选择合适的框架,框架作者可以专注于创新,硬件供应商可以简化优化流程。

感谢所有帮助开发这些工具,并通过贡献bug报告、配置文件、用例、文档和支持来改进它们的人。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1813

    文章

    49794

    浏览量

    262055
  • 机器学习
    +关注

    关注

    66

    文章

    8542

    浏览量

    136333
  • tensorflow
    +关注

    关注

    13

    文章

    332

    浏览量

    61872

原文标题:TensorFlow三岁了!

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【上海晶珩睿莓1开发板试用体验】TensorFlow-Lite物体归类(classify)

    目前尚未得知睿莓1开发板上面有NPU或者DPU之类的额外处理器,因此使用树莓派系列使用最广泛的TensorFlow-Lite进行物体归类,使用CPU运行代码,因此占用的是CPU的算力。在
    发表于 09-12 22:43

    超小型Neuton机器学习模型, 在任何系统级芯片(SoC)上解锁边缘人工智能应用.

    Neuton 是一家边缘AI 公司,致力于让机器 学习模型更易于使用。它创建的模型比竞争对手的框架小10 倍,速度也快10 倍,甚至可以在最先进的边缘设备上进行人工智能处理。在这篇博文中,我们将介绍
    发表于 07-31 11:38

    FPGA在机器学习中的具体应用

    随着机器学习和人工智能技术的迅猛发展,传统的中央处理单元(CPU)和图形处理单元(GPU)已经无法满足高效处理大规模数据和复杂模型的需求。FPGA(现场可编程门阵列)作为一种灵活且高效的硬件加速平台
    的头像 发表于 07-16 15:34 2660次阅读

    大象机器人携手进迭时空推出 RISC-V 全栈开源六轴机械臂产品

    机器人场景的量产应用。更多的面向智能机器人的RISC-V AI软硬件技术创新以及应用案例,将陆续在公司微信公众号做介绍,敬请大家期待。
    发表于 04-25 17:59

    NanoEdge AI Studio 面向STM32开发人员机器学习(ML)技术

    NanoEdge™ AI Studio*(NanoEdgeAIStudio)是一种新型机器学习(ML)技术,可以让终端用户轻松享有真正的创新成果。只需几步,开发人员便可基于最少量的数据为其项目创建
    的头像 发表于 04-22 11:09 1026次阅读
    NanoEdge AI Studio <b class='flag-5'>面向</b>STM32开发人员<b class='flag-5'>机器</b><b class='flag-5'>学习</b>(ML)技术

    面向AI与机器学习应用的开发平台 AMD/Xilinx Versal™ AI Edge VEK280

    AMD/Xilinx Versal™ AI Edge VEK280评估套件是一款面向AI与机器学习应用的开发平台,专为边缘计算场景优化设计。以下从核心配置、技术特性、应用场景及开发支持等方面进行详细
    的头像 发表于 04-11 18:33 2079次阅读
    <b class='flag-5'>面向</b>AI与<b class='flag-5'>机器</b><b class='flag-5'>学习</b>应用的开发平台 AMD/Xilinx Versal™ AI Edge VEK280

    **【技术干货】Nordic nRF54系列芯片:传感器数据采集与AI机器学习的完美结合**

    机器学习算法,解决传感器数据采集难题! 1. nRF54系列支持OTA吗? 答:支持!nRF54L系列基于Zephyr的MCUBOOT和SMP DFU,支持BLE和UART等多种OTA方式
    发表于 04-01 00:00

    用树莓派搞深度学习TensorFlow启动!

    介绍本页面将指导您在搭载64位Bullseye操作系统的RaspberryPi4上安装TensorFlowTensorFlow是一个专为深度学习开发的大型软件,它消耗大量资源。您可
    的头像 发表于 03-25 09:33 988次阅读
    用树莓派搞深度<b class='flag-5'>学习</b>?<b class='flag-5'>TensorFlow</b>启动!

    OpenVINO™是否与TensorFlow集成支持Raspberry Pi?

    无法确定OpenVINO™是否与 TensorFlow* 集成支持 Raspberry Pi。
    发表于 03-05 08:26

    机器学习模型市场前景如何

    当今,随着算法的不断优化、数据量的爆炸式增长以及计算能力的飞速提升,机器学习模型的市场前景愈发广阔。下面,AI部落小编将探讨机器学习模型市场的未来发展。
    的头像 发表于 02-13 09:39 643次阅读

    嵌入式机器学习的应用特性与软件开发环境

    作者:DigiKey Editor 在许多嵌入式系统中,必须采用嵌入式机器学习(Embedded Machine Learning)技术,这是指将机器学习模型部署在资源受限的设备(如微
    的头像 发表于 01-25 17:05 1251次阅读
    嵌入式<b class='flag-5'>机器</b><b class='flag-5'>学习</b>的应用特性与软件开发环境

    传统机器学习方法和应用指导

    在上一篇文章中,我们介绍了机器学习的关键概念术语。在本文中,我们会介绍传统机器学习的基础知识和多种算法特征,供各位老师选择。 01 传统机器
    的头像 发表于 12-30 09:16 2007次阅读
    传统<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法和应用指导

    如何选择云原生机器学习平台

    当今,云原生机器学习平台因其弹性扩展、高效部署、低成本运营等优势,逐渐成为企业构建和部署机器学习应用的首选。然而,市场上的云原生机器
    的头像 发表于 12-25 11:54 715次阅读

    Triton编译器在机器学习中的应用

    多种深度学习框架,如TensorFlow、PyTorch、ONNX等,使得开发者能够轻松地将不同框架下训练的模型部署到GPU上。 2. Triton编译器的工作原理 Triton编译器通过以下几个步骤
    的头像 发表于 12-24 18:13 1680次阅读

    zeta在机器学习中的应用 zeta的优缺点分析

    在探讨ZETA在机器学习中的应用以及ZETA的优缺点时,需要明确的是,ZETA一词在不同领域可能有不同的含义和应用。以下是根据不同领域的ZETA进行的分析: 一、ZETA在机器学习
    的头像 发表于 12-20 09:11 1641次阅读