TensorFlow 2.0 正式版官宣!深度集成 Keras

举报
橘座 发表于 2019/11/02 15:39:21 2019/11/02
【摘要】 来源:medium、GitHub编辑:小芹、大明TensorFlow 2.0正式版终于发布了!深度集成Keras,更简单、更易用,GPU训练性能提升。这是一个革命性的新版本,欢迎来到 TensorFlow 2.0!TensorFlow 2.0正式版终于发布了!谷歌今天宣布,开源机器学习库TensorFlow 2.0现在可供公众使用。TensorFlow 2.0的Alpha版本今年初在Tens...

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1


来源:medium、GitHub

编辑:小芹、大明


TensorFlow 2.0正式版终于发布了!深度集成Keras,更简单、更易用,GPU训练性能提升。这是一个革命性的新版本,欢迎来到 TensorFlow 2.0!



TensorFlow 2.0正式版终于发布了!


谷歌今天宣布,开源机器学习库TensorFlow 2.0现在可供公众使用。


TensorFlow 2.0的Alpha版本今年初在TensorFlow开发者大会上首次发布,经过近7个月的不断修改、更新,TensorFlow 2.0正式版可谓是千呼万唤始出来。


640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1


作为最受欢迎的机器学习库之一,自2015年谷歌大脑团队发布TensorFlow以来,TensorFlow框架已被下载超过4000万次。


为了提高易用性,TensorFlow 2.0进行了许多修改,如取消了一些被认为是多余的API,并紧密集成和依赖tf.keras作为中央高级API。TensorFlow与Keras深度学习库的集成化最初始于2017年2月发布的TensorFlow1.0,本次更新让二者的集成程度进一步提高。


此外,当在Nvidia的Volta和Turing GPU上运行时,新版本的性能表现可以提高三倍。




下面,我们带来对TensorFlow 2.0 新特性的具体介绍。




欢迎来到TensorFlow 2.0




TensorFlow 2.0专注于简单性和易用性,主要更新如下:

 

  • 可使用Keras轻松进行模型构建,可立即执行,直观调试。

  • 在任何平台上的生产中都可以进行稳健的模型部署。

  • 提供强大的研究实验支持。

  • 减少了重复,移除了不建议使用的端点,简化了API。







TensorFlow 2.0使得机器学习应用的开发更加容易。通过将Keras紧密集成到TensorFlow中、默认eager execution,以及Python函数执行,TensorFlow 2.0开发应用程序的经验会让Python开发者很熟悉。对于那些想要突破机器学习边界的研究人员来说,我们在TensorFlow的底层API上投入了大量的精力:我们现在导出了所有内部使用的操作,并且为诸如变量和checkpoint等关键概念提供了可继承的接口。允许用户构建TensorFlow的内部构件,而无需重建TensorFlow。







能够在各种runtimes(包括云、web、浏览器和Node.js,移动和嵌入式系统)上运行模型,我们对SavedModel文件格式进行了标准化。这允许用户使用TensorFlow运行模型,使用TensorFlow服务部署模型,使用TensorFlow Lite在移动和嵌入式系统上使用模型,使用TensorFlow.js在浏览器或Node.js上训练和运行模型。


对于高性能的训练场景,你可以使用 Distribution Strategy API以最小的代码更改来分布训练,并获得出色的开箱即用性能。它通过 Keras 的 Model.fit 支持分布式训练,还支持自定义训练循环。此外,现在可以使用多GPU支持,Cloud TPU支持将在未来发布。


查看分布式训练指南了解更多:

https://www.tensorflow.org/guide/distributed_training


TensorFlow 2.0在GPU上提供了许多性能改进。TensorFlow 2.0通过在Volta和Turing GPU上使用混合精度和几行代码(例如在ResNet-50和BERT中使用的),将训练性能提高了 3 倍。TensorFlow 2.0与TensorRT紧密集成,并使用改进的API在谷歌云上的NVIDIA T4 Cloud GPU上进行推理时提供更好的可用性和高性能。


在TensorFlow中构建模型时,对训练和验证数据的有效访问是至关重要的。我们引入了TensorFlow Datasets,为包含各种数据类型(如图像、文本、视频等)的大量数据集提供了一个标准接口。


虽然仍然保留了传统的基于会话的编程模型,但我们建议使用常规的Python开发和eager execution。tf.function可用于将代码转换成可远程执行的、序列化和性能优化的图形。此外,Autograph还可以将常规的Python控制流直接转换为TensorFlow控制流。


如果你使用过TensorFlow 1.x,这里有一个迁移到2.0的官方指南:

https://www.tensorflow.org/guide/migrate


TensorFlow 2.0也包括一个自动转换脚本。


我们已经与谷歌内部和TensorFlow社区的许多用户合作,测试了TensorFlow 2.0的功能,并对反馈感到非常兴奋。例如,谷歌新闻团队在TensorFlow 2.0中启用了基于BERT的语言理解模型,从而极大地改进了新闻报道的覆盖率。TensorFlow 2.0提供易于使用的API和快速实现新想法的灵活性,模型训练和服务被无缝地集成到现有的基础架构中。


而且,ML不仅是Python开发者专属—JavaScript开发者可以使用TensorFlow.js进行训练和推理。Swift语言的支持也正在进行中。




 主要特点和功能改进



 

将Keras作为构建和训练模型的中央高级API。 Keras提供了一些模型构建API,如顺序列化、函数化、子类化以及立即执行(用于立即迭代和直观调试)、tf.data(用于构建可扩展的输入pipeline)等。

 

更灵活的资源分配策略:TF 2.0用户将可以使用tf.distribute.StrategyAPI,通过最少的代码修正来分配训练策略,从而获得出色的现成性能。TF 2.0支持Keras model.fit以及自定义训练循环的分布式训练,还提供多GPU支持,以及对多工作人员和Cloud TPU的实验性支持。

 

建议使用函数,而不是会话。TF 2.0不鼓励使用传统的声明式编程模型来构建图形,再通过tf.Session执行,而是建议编写常规Python函数来代替这一过程。使用tf.function装饰器,可以将这些函数转换为图形,这些图形可以远程执行,序列化并针对性能进行优化。

 

实现tf.train.Optimizers和tf.keras.Optimizers的统一对TF2.0使用tf.keras.Optimizers。作为公共API删除了compute_gradients,使用GradientTape计算梯度。

 

AutoGraph将Python控制流转换为TensorFlow表达式,允许用户在有tf.function的函数中编写常规Python语句。AutoGraph也适用于与tf.data,tf.distribute和tf.keras API一起使用的函数。

 

将交换格式统一为SavedModel。所有TensorFlow生态系统项目(TensorFlow Lite,TensorFlow JS,TensorFlow Serving,TensorFlow Hub)都接受SavedModels。模型状态应保存到SavedModels或从SavedModels恢复。

 

一些API的更改:部分API符号被重命名或删除,参数名称也已更改。许多更改都是出于提高一致性和清晰性的考虑。TF 1.x版本API在compat.v1模块中仍然可用。

 

清理了一些API:移除了tf.app,tf.flags和tf.logging以支持absl-py。不再使用如tf.global_variables_initializer和tf.get_global_step之类的辅助方法的全局变量。

 

自动混合精度图形优化器简化了将模型转换为float 16的过程,更便于在Volta和Turing张量核心上进行加速。可以使用tf.train.experimental.enable_mixed_precision_graph_rewrite()包装优化器类来启用此功能。

 

添加环境变量TF_CUDNN_DETERMINISTIC。设置为TRUE或“ 1”将强制选择确定性cuDNN卷积和最大池算法。启用此功能后,算法选择过程本身也是确定性的。


这里有一个方便的指南,了解如何有效使用TensorFlow 2.0中的所有新功能:

https://www.tensorflow.org/guide/effective_tf2


此外,为了简化TensorFlow 2.0的入门工作,官方发布了几个使用2.0 API的常用ML模型的参考实现:

https://www.tensorflow.org/resources/models-datasets


最后,两个免费在线课程不容错过:

https://www.coursera.org/learn/introduction-tensorflow

https://www.udacity.com/course/intro-to-tensorflow-for-deep-learning--ud187




官方博客:
https://medium.com/tensorflow/tensorflow-2-0-is-now-available-57d706c2a9ab




GitHub:

https://github.com/tensorflow/tensorflow/releases/tag/v2.0.0



【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。