作为AI关注者,如果本月你没有及时跟进重大新闻,那么很可能会错过一个重磅消息,那就是TensorFlow 2.0的推出。谷歌首席决策情报工程师 Cassie Kozyrkov 认为整个 AI 行业的格局都将因此发生改变。

去年,我曾经在文章中讨论过关于 TensorFlow 大家必须了解的九件事,现在,又有了新的、必须得知晓的新事件——TensorFlow 2.0 出来了!

革命就在这里!掌声送给TensorFlow 2.0。

这是一番彻底的改造,而刚刚发生的这一切必将给各个行业产生深远的影响。好在变革才刚刚起步,因此如果大家身为2019年才刚刚接触TensorFlow的新手,那么恭喜你,这可能算是迈入AI领域的最佳时机了。

简而言之:TensorFlow真正让Keras完整了起来。相信能理解这句话的朋友们一定会为此振奋不已。

糟糕的过往体验

我听不少人说TensorFlow 1.x很讨人喜欢,反正我是压根理解不了这种观点。TensorFlow 1.x可以算是行业领域中的车床……重要,但完全谈不到用户友好这一层。充其量,它也就是能够帮助用户完成以往根本无法想象的大规模AI任务,不过真的、真的没有好用可言。

首先,我认为任何宣称TensorFlow 1.x易于掌握的言论都值得批判一番。学习过的朋友们一定还记得,其陡峭的学习曲线使得普通爱好者几乎不可能掌握;但在学会之后,伤痕累累的我们又开始大肆炫耀——如同向他人炫耀自己攀登珠峰时冻掉了脚趾一样。这有意思吗?抛开那一点点本无必要的虚荣心,这样高的门槛真的有意思吗?

相信我,你不是唯一有此感觉的用户——TensorFlow 1.x教程带给每个人的,几乎都是这样的体验。 TensorFlow的核心优势在于性能,其设计目标是为了能够将模型由研究环境转移至生产环境并实现大规模交付。然而,TensorFlow 1.x却几乎断送了这些承诺。只有坚持不懈并攻克这道难关,我们才有可能加入ML从业者队伍,并进一步探索其它令人向往的事物——例如寻找新的行星或者开拓医学疆土。

遗憾的是,如此强大的工具却被掌握在极少数人手中……直到现在。

不用操心张量是个什么东西。在我学习那会,大家都把它们叫作矩阵(广义)。TensorFlow这个名称,实际上是在强调其非常擅长执行涉及多维数组(呃,矩阵)的分布式计算这一基本事实,而这一切都能够在大规模AI应用当中发挥重要作用。

可爱又喜人的Keras

现在,我们说完了其中最困难的部分。接下来,该聊聊大家真正希望接受的解决方案了。有一回我在上班时,无意中听到有人说“我觉得我真的很喜欢Keras。”
没错,Keras是一种逐层构建模型的规范,适用于多种机器学习框架(因此不限于TensorFlow)。但大家对它的接触,一般源自TensorFlow当中用于实现高级API访问的tf.keras。

顺带一提,撰写本文时恰逢Keras项目的四岁生日(2019年3月27日)。生日快乐,小家伙!
Keras在设计之初就秉持着与Python类似的观念,即以人为本——它非常灵活、敏捷且简单易学。

我们为什么不能双管齐下?

我们为什么非得从Keras的亲民与TensorFlow的强大之间做出选择?为什么不能二者兼有?

好主意!现在我们都有了!简而言之,答案就是TensorFlow 2.0。

这就是TensorFlow 2.0。大家可以亲自点点那些橙色的按钮。

“我们认为,用户没有必要在简单的API与可扩展的API之间做出先找。我们希望推出一种更高级的API,能够将你从MNIST数据集一路引领至宇宙深空。” 
— Karmel Allison,谷歌公司TensorFlow工程负责人

可用性的革命

展望未来,Keras将成为TensorFlow的高级API;而凭借着自身扩展,用户现在可以直接通过tf.keras使用TensorFlow的全部高级功能。

换言之,所有的TensorFlow都将具有Keras的简单性,而Keras将在任何规模与一切硬件之上带来TensorFlow的强大性。

在新版本中,我们最讨厌的TensorFlow 1.x原罪都将得到救赎。为了把两个数字加起来,就非得搞一些黑魔法似的神秘操作?当然不用。TensorFlow会话?不要。用一百万种方法实现同一种效果?没门。切换硬件或者变更规模就得重写代码?开什么玩笑。大量样板文件?没必要。根本没有任何引导性可言的错误信息?滚蛋。陡峭的学习曲线?解决。

TensorFlow已死,TensorFlow 2.0万岁!

作为经年累月的受虐对象,大家肯定想着,来吧,那个永远存在的“但是”在哪呢?性能肯定得受点影响吧?错!我们绝对不会在性能上做出妥协。

TensorFlow现在真正可爱起来了,并成为游戏规则的改变者,这意味着我们这个时代下最强大的工具之一终于摆脱了大部分入门障碍。来自各行各业的技术爱好者终于有能力加入其中。是的,研究人员与热情的学习者在新版本中将得到更友好,或者说应有的待遇。

我们这个时代下最强大的工具之一终于摆脱了大部分入门障碍!

我们敞开大门欢迎每一位朋友?想要试?那就试试!

体验提升

在TensorFlow 2.0当中,急切执行现在成为默认设置。你甚至可以在急切上下文中使用图形,从而显著简化调试与原型设计工作,而TensorFlow运行时则负责解决性能与扩展方面的问题。

TensorFlow 1.x(声明性编程)中的纠缠图对很多人而言都是噩梦般的存在,但现在急切执行(命令式编程)最多只能算是正常梦境中的一点小惊吓。如果之前大家因为难度关系而跳过了声明编程,那要向你说一声恭喜——TensorFlow 2.0为每个人提供相同的全新开端。

简洁如一

在Keras的引导之下,大量API在TensorFlow当中得到了整合,因此用户现在能够更清晰地理解何时需要加以使用。举例来说,现在我们只需要一组优化器与一组指标。那么层集又有多少?没错,一个。这就是Keras的风格,简洁如一。

事实上,整个工具生态系统就像进行了一次开学大扫除,从数据处理流水线到简单模型输出,再到TensorBoard与Keras的整合,所有的一切都被纳入一条单线。

新版本还提供其它一些出色的工具,能够帮助用户切换及优化分发策略,从而在实现惊人扩展效率的同时又不失去Keras带来的任何便利性优势。

这些分发策略非常酷炫,对吧?

还有什么问题?

如果性能没有受到影响,那么权衡之后的短板在哪?总会有问题的,对吧?

实际上,问题就是让大家等了这么长时间。TensorFlow一直感激用户们的耐心,用以酝酿这套真正友好的版本。我们并不是故意把好东西藏了起来。为深度学习模型制作工具是个全新领域,我们也一直在探索甚至是摸索。在过程当中,我们不可避免地犯了很多错误,但也因此学习到了大量宝贵的经验。

TensorFlow社区投入了大量精力完成从0到1的质变,然后再对这颗珍贵的原石进行切割与抛光,打掉一切糟糕的元素。我们从来没想过先拿个半成品出来,但这个过程客观存在,而且也确实给大家带来了很多不便。总之,一切都过去了,经历了暂时的痛苦,我们再次感谢你的耐心等待。

我们不会牺牲性能!

要说这段经历的好处,就是在体会过TensorFlow 1.x的一切之后,你更能够欣赏新版本的API友好设计;大量重复功能被清除之后,新版本的使用方式也更加清晰。另外,错误信息也经过了整理,现在更简洁易懂、可操作性暴增。最后,强大的性能也依然存在。

有什么大不了的?

有些朋友可能对此不屑一顾:只要多拿点时间进行完善,1.x版本中的大部分功能都已经是现成的,只要整合到2.0中就可以了,这有什么大不了的?好吧,但并不是所有人都像我们一样愿意挖掘这些排布杂乱的定期。改造与清理工作同样值得认同与尊重,对不对?当然,这还不是新版本最大的意义。

2.0版本最大的意义在于:TensorFlow正式宣布将对可用性投入绝不妥协的永久关注。

AI技术允许用户自动执行那些无法提供明确表述的任务,能够帮助我们自动实现某些原本无法操作的工作。而民主化进程,则代表着大规模AI这一有力武器不再被掌握在少数精英集团手中。

现在,任何人都可以参与进来,亲身体验一番。

想象一下,未来“我知道如何使用Python编写程序”将和“我知道如何用AI技术解决任务”将变成同样常见的两种陈述……没错!这,不就是新闻头条里常说的“颠覆”么?

艰苦的迁移之路

相信大家都了解,新版本的升级是一项艰苦的工作,特别是考虑到2.0版本中引入了数量众多的变化。如果你打算将原有代码库迁移至2.0版本,并发现过程中充满挑战,请别灰心——我们在谷歌也与你面对着同样的问题。我们拥有世界上规模最大的代码库之一,而随着后续推进,我们也将与大家分享详尽的迁移细节与指导意见。

另外,我们也为大家准备了良好的工具,用于简化整个迁移过程。

如果你依赖于特定功能,不用担心——除了contrib之外,TensorFlow 1.x中的所有功能都将被存放在compat.v1兼容性模块当中。我们还为大家准备了一份自动代码更新脚本,其能够在TensorFlow 2.0上运行。请参阅以下视频了解更多细节信息。

开启新征程

TensorFlow 2.0对于新手非常友好;换言之,那些曾经饱受折磨,并打算看新手笑话的老鸟们这下要失望了。

如果你身为TensorFlow初学者,虽然现在才投身AI似乎有点晚,但一切都还来得及。或者说,现在正是开启学习之路的最佳时机。

截至2019年3月,TensorFlow 2.0仍然以alpha测试版的形式交付(这将是一套预览版本),因此现在学习将能够帮助大家做好准备,并更好地迎接社区计划在下个季度全面发布的完整版本。

经过此番天翻地覆的调整,初学之路已经变得平坦了许多。场地更平整,比赛更轻松,而且始终为你留有席位。欢迎加入!我们期待着有更多新生力量加入进来,也希望大家能够与我们一样对这个新的、充满可能性的世界感到兴奋。

干一番事业吧,同志们!

要获取教程、示例、文档与工具等入门资料,请访问经过重新设计的tensorflow.org网站……如果打算直接上手,请使用以下命令:

pip install tensorflow==2.0.0-alpha0

你也可以点击此处参阅详细说明。

原文链接:
https://hackernoon.com/tensorflow-is-dead-long-live-tensorflow-49d3e975cf04

更多内容,请关注AI前线

TensorFlow 1.0已死,TensorFlow 2.0万岁相关推荐

  1. Cloud 已死,本地部署万岁!

    计算在客户端/服务端模式和瘦客户机模型之间来回地摇摆,云(cloud)也会遭受同样的命运吗? 作者 | Thomas Jardinet 译者 | 明明如月,责编 | 郭芮 出品 | CSDN(ID:C ...

  2. TensorFlow已死,TensorFlow万岁!

    如果你是一名人工智能爱好者,却没有关注到一条重大新闻,就好比你在一场罕见的地震中打了个盹.等你醒来,会发现一切都将改变! TensorFlow 2.0来了! 革命就在这里!欢迎来到TensorFlow ...

  3. Ubuntu16.04.4 + 双 NAVDA TitanX + CUDA9.0 + cudnn7.05 + TensorFlow 1.8(1.5.0) + Keras

    一.安装 Ubunt16.04.4 二.安装显卡驱动 二*.遇到问题 若驱动安装失败,不能进入系统,采用如下两种方法解决. 无法进入桌面的问题 三.安装 CUDA 四.安装 cudnn 五.在 bas ...

  4. 【tensorflow】安装cuda10.0 and cudnn 7.5.0 and tensorflow-gpu==1.14.0

    安装cuda 的一天 使用实验室同学下载好的cuda安装报错 文件直接传:7zip Data error: 原因是安装文件损坏,重新下载 安装包下载 cuda 10.0版本 官网安装中断: 开了vpn ...

  5. envs\TensorFlow2.0\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning 解决方案

    import tensorflow后的完整报错: D:\Anaconda3\envs\TensorFlow2.0\lib\site-packages\tensorflow\python\framewo ...

  6. ubuntu16.04+七彩虹GTX1060的NVIDIA驱动+Cuda8.0+cudnn5.1+tensorflow+keras搭建深度学习环境【学习笔记】【原创】

    平台信息: PC:ubuntu16.04.i5.七彩虹GTX1060显卡 作者:庄泽彬(欢迎转载,请注明作者) 说明:参考了网上的一堆的资料搭建了深度学习的开发环境,下班在宿舍折腾了好几个晚上才搞定, ...

  7. ubuntu14.04+cuda8.0(gtx1080)下tensorflow的安装

    tensorflow的安装 https://www.tensorflow.org/versions/master/get_started/os_setup.html#anaconda-installa ...

  8. NVIDA GTX2080 Ubuntu18.04 cuda10.0 cudnn7.5 tensorflow 1.12 install

    NVIDA GTX2080 Ubuntu18.04 cuda10.0 cudnn7.5 tensorflow 1.12 install 心仪已久的显卡2080终于到了,Ubuntu18这么帅,怎么还能 ...

  9. 基于Ubuntu 18.04.3操作系统的TensorFlow 2.1.0、PyTorch 1.4.0、OpenCV 4.2.0、Darknet深度学习环境搭建

    今天是初五,民间有破五的习俗,简单来说就是说该工作啦. 回顾研究生毕业的一年半,期间从事过桌面应用开发.CAN\串口开发.无人机目标检测开发.爬虫.数据工程.大数据系统运维等.研究生期间学的深度学习也 ...

  10. TensorFlow GPU 版本安装个人总结:Win10 + Python3.5 + CUDA 9.0.176 + cudnn v7.5.0.56 + TensorFlow 1.12.0

    TensorFlow GPU 版本安装个人总结:Win10 + Python3.5 + CUDA 9.0.176 + cudnn v7.5.0.56 + TensorFlow 1.12.0 接触机器学 ...

最新文章

  1. iOS 工程师被要求写小程序,过分吗?| 每日趣闻
  2. Nginx 301与302配置
  3. C/C++【顺序表】【初始化、赋值、打印、取值、查找、插入、删除、销毁、综合举例】
  4. HDU多校1 - 6955 Xor sum(字典树+贪心)
  5. C语言经典算法100例
  6. java mock什么意思_java @Mock, @MockBean 与 Mockito.mock( ) 之间的差异
  7. 【学生信息管理系统】——优化篇(二)
  8. python数组随机打乱_对Python random模块打乱数组顺序的实例讲解
  9. python结课设计力学方面_我对力学教案的评价
  10. python获取shell输出及返回码_如何执行shell命令获取Python中命令后的输出和pwd
  11. PHP的html实现xpath解析,php用xpath解析html的代码实例讲解
  12. Windows平台RTMP推送|轻量级RTSP服务实现本地摄像头|屏幕|叠加数据预览
  13. define定义的函数如何引用_「C与指针心得」25.预处理器-宏函数
  14. php 5.3 连接mysql_php5.3.x5.4.x5.5.x连接mysql数据库的三种方式以及所用驱动
  15. Tomcat的安装及配置。
  16. Qt4_子类化QTableWidget
  17. Windows 下 FTP的搭建
  18. 揭秘 | 2021年移动云API大赛决赛大奖花落谁家?
  19. 【爬虫实战】7基础Python网络爬虫——淘宝商品比价定向爬虫(MOOC学习笔记)
  20. Android启动页设置

热门文章

  1. Codeforces 837D 动态规划
  2. Codeforces.871D.Paths(莫比乌斯反演 根号分治)
  3. centos mpeg acc 解码器安装
  4. rhel6+apache2.4+mysql5.7+php5.6部署LAMP架构
  5. python学习---字符串
  6. Android Butterknife框架 注解攻略
  7. 【慢慢学算法】:八进制(vector练习)
  8. c#实现打印功能,可以设置纸张大小,字体和颜色等
  9. C#动态创建和动态使用程序集、类、方法、字段等(二)
  10. Unity3D-射线效果