【AI科技大本营导语】在今天举行的 2019 年 TensorFlow 开发者峰会上,谷歌宣布了其针对研究和生产的开源机器学习库的一些更新。TensorFlow 2.0 alpha 提供即将发生的变化的预览,旨在让初学者更容易使用 ML。

文 / Wolff Dobson 和 Josh Gordon

TensorFlow 2.0 注重易用性,提供有 API 供初学者和资深人士用来创建机器学习模型。在 TensorFlow 2.0 的新功能 和 标准化 Keras 等近期发布的文章中,我们介绍过它的新功能和平台的发展方向。

我们在 TensorFlow 开发者峰会 上宣布了 TensorFlow 2.0 Alpha 版,用户现在可以抢先体验。

注:TensorFlow 开发者峰 链接
https://www.tensorflow.org/dev-summit

入门指南

要快速上手 TensorFlow 2.0 Alpha 版,最佳途径是前往 TensorFlow 的新网站。您可以在 tensorflow.org/alpha 上找到 Alpha 版的教程和指南。Alpha 版文档中的每个教程均会自动下载并安装 TensorFlow 2.0 Alpha 版,并且后续将提供更多内容!

注:tensorflow.org/alpha 链接
https://www.tensorflow.org/alpha

我们建议您先查看面向初学者和资深人士的 “Hello World” 示例,然后再阅读 Effective TensorFlow 2.0 等指南。

初学者示例 使用的是 Keras Sequential API,这是最简单的 TensorFlow 2.0 入门方法。

资深人士示例 展示如何命令式地编写正向传递、如何使用 GradientTape 编写自定义训练循环,以及如何使用 tf.function 自动编译代码(仅需一行代码!)

注:初学者示例 链接
https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/quickstart/beginner.ipynb

资深人士示例 链接
https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/r2/tutorials/quickstart/advanced.ipynb

除此之外,我们还提供有各类新 指南,包括:

重要的 AutoGraph 指南(让您能够获得图表的全部性能和可移植性,而无需编写图表级代码)

代码升级 指南(通过转换脚本可以方便地将 TensorFlow 1.x 代码转换为 2.0 代码)

其他有关 Keras 的初期指南

注:指南 链接
https://github.com/tensorflow/docs/tree/master/site/en/r2/guide

AutoGraph 链接

https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb

Kera 链接

https://github.com/tensorflow/docs/tree/master/site/en/r2/guide/keras

若您想要查看更改的内容,也可参阅 API 参考 修订版(现在符号的使用大大减少)。请注意,虽然我们正在积极开发 TensorFlow 2.0,但 tensorflow.org 的落地页仍默认为 1.x 文档。若您打算研究 API 参考,请务必选择合适的 TensorFlow 版本。

注:API 参考 链接

https://www.tensorflow.org/versions/r2.0/api_docs/python/tf

安装

若要安装 Alpha 版,我们建议您创建一个新的虚拟环境并使用 “pip install --upgrade --pre tensorflow” 或 “tensorflow-gpu”(需要 CUDA 10)。我们会较为频繁地更新此版本,添加新功能。您亦可将 “!” 添加至命令 “!pip install --upgrade --pre tensorflow”,在 Colab 中试用。(以上所有教程和指南均会自动安装最新版本)。

注:Colab 链接
https://colab.research.google.com/notebooks/welcome.ipynb#recent=true

函数,而非会话

下面我们深入介绍 2.0 中的这两个功能如何协同工作:Eager execution 与 “@tf.function”。

其中一个最明显的变化是,TensorFlow 是 “Eager 优先”,这意味着 op 在调用后会立即运行。在 TensorFlow 1.x 中,您可能会先构图,然后通过 “tf.Session.run()” 执行图的各个部分。TensorFlow 2.0 从根本上简化了 TensorFlow 的使用 — 同样出色的 op,现在却更易理解和使用。

a = tf.constant([1, 2])
b = tf.constant([3, 4])print(a + b)
# returns: tf.Tensor([4 6], shape=(2,), dtype=int32)

TensorFlow 2.0 使用 Keras 作为开发者的核心体验。在 2.0 中,您可以如常使用 Keras,利用 Sequential API 构建模型,然后使用 “compile” 和 “fit”。tensorflow.org 中所有这些熟悉的 “tf.keras” 示例均可在 2.0 中实现 “开箱即用”。

Keras 的 “fit()” 适用于很多情况,但是,需要更高灵活性的开发者现在可以有更多选择。我们来看一下 此示例 中以 TensorFlow 2.0 风格编写的自定义训练循环:

def train_one_step(model, optimizer, x, y):
 with tf.GradientTape() as tape:
   logits = model(x)
   loss = compute_loss(y, logits) grads = tape.gradient(loss, model.trainable_variables)
 optimizer.apply_gradients(zip(grads, model.trainable_variables)) compute_accuracy(y, logits)
 return lossdef train(model, optimizer):
 train_ds = mnist_dataset()
 step = 0
 loss = 0.0
 for x, y in train_ds:
   step += 1
   loss = train_one_step(model, optimizer, x, y)
   if tf.equal(step % 10, 0):
     tf.print('Step', step, ': loss',
               loss, '; accuracy', compute_accuracy.result())
 return step, loss, accuracy

60s测试:你是否适合转型人工智能?

https://edu.csdn.net/topic/ai30?utm_source=cxrs_bw

注:此示例 链接

https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/autograph.ipynb

此示例采用 Autograd 风格的 GradientTape,并通过优化器手动应用您的梯度。在编写具有复杂内部运作的自定义训练循环(譬如在强化学习中)或进行研究(轻松帮您落实提高优化器效率的新想法)时,这特别有帮助。

“Eager execution” 还有助于调试和监控运行中的代码,您可以使用 Python 调试程序检查变量、层及梯度等对象。在训练循环中,我们使用 “if”、“for” 和 “print()” 等 Python 语句。

一旦代码运行正常,您便会想要获得图表优化和效率。为此,您可以利用装饰器 “@tf.function” 封装 “train”。“tf.function” 中内置 Autograph,因此您无需任何特殊操作便可获取以用图表效率运行的 “if” 或 “for” 子句。

@tf.function
def train(model, optimizer):
 train_ds = mnist_dataset()
 step = 0
 loss = 0
 accuracy = 0
 for x, y in train_ds:
    # 如上所述,包括 “if” 和“print()”
 return step

这段代码并不会受注释影响,但我们会将其编译到可在 GPU、TPU 上轻松运行的图表中,或将其保存至 “SavedModel” 留待后用。

针对这对代码,尤为有趣之处在于,通过在 “@tf.function” 中封装 “train()”,“train_one_step()”、“compute_loss()” 和 “compute_accuracy()” 也会自动进行转换。您也可选择在 “@tf.function” 中仅封装部分运算,从而获得所需行为。

此外,TensorFlow 2.0 完全支持 Estimator。请参阅新教程,了解提升树和模型理解的相关内容。

注:教程 链接
https://github.com/tensorflow/docs/tree/master/site/en/r2/tutorials/estimators

(本文为AI科技大本营转载文章,转载请联系原作者)

公开课推荐

今晚8点

拯救老电影!爱奇艺资深算法工程师蒋紫东老师今晚8点为大家讲解视频/图像增强技术。

推荐阅读:

  • 抵制知网、爱思唯尔,学界苦出版商久矣?

  • 首发 | 旷视14篇CVPR 2019论文,都有哪些亮点?

  • 免费报名 | 爱奇艺ZoomAI视频增强技术的应用

  • 求职季!你的竞争者都在Github上看这套Python面试题!

  • 除了写代码,程序员还能做哪些副业呢?| 程序员有话说

  • 调查全球 98,000 名程序员发现,PHP 遭厌弃,前端岗已饱和!

  • 虎牙直播在微服务改造方面的实践和总结

  • 两会第一天, 大佬们关于区块链的探讨, 你要了解的都在这了

  • 为啥程序员下班后只关显示器从不关电脑?

TensorFlow 2.0 Alpha 版发布啦!相关推荐

  1. 余承东:华为6G研发还需10年;库克“iPhone 11势头强劲”;TensorFlow 2.0正式版发布​ | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  2. 10月2日科技资讯|余承东:华为6G研发需10年;库克“iPhone 11势头强劲”;TensorFlow 2.0正式版发布

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 整理 | 郭 ...

  3. TensorFlow 2.0.0-RC0版发布,专注于简单性与易用性

    TensorFlow 2.0 RC0 发布了,2.0 专注于简单性和易用性,主要特性包括: 通过 Keras 和热切执行轻松建模. 在任何平台生产中进行稳健的模型部署. 强大的研究实验. 通过减少重复 ...

  4. 微软董事会:比尔·盖茨应当离开;字节跳动回应“实习生遭遇职场 PUA”事件;TensorFlow 2.5.0稳定版发布|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  5. 极客日报第125期:微信将于 5 月 19 日之后停止小程序打开 App 技术服务;原装 AirTag 发货时间延长至 4-5 周;TensorFlow 2.5.0稳定版发布

    一分钟速览新闻点! 微信将于 5 月 19 日之后停止小程序打开 App 技术服务 腾讯音乐组织调整:减少内耗,推进业务合并 小米互助正式关停,上线仅 11 个月 腾讯电商 App"小鹅拼拼 ...

  6. python3最新稳定版本-Python 3.9.0 稳定版发布

    新酷产品第一时间免费试玩,还有众多优质达人分享独到生活经验,快来新浪众测,体验各领域最前沿.最有趣.最好玩的产品吧~!下载客户端还能获得专享福利哦! 原标题:Python 3.9.0 稳定版发布 IT ...

  7. python3.9.0_Python 3.9.0 alpha 1 发布了,3.9 系列首个迭代版本

    Python 3.9.0 alpha 1 发布了,这是 3.8 之后的首个 3.9 系列版本. 官方没有介绍新特性,也没有添加新模块,但是以下模块有所改进: ast asyncio curses fc ...

  8. python 3.9 发布_Python 3.9.0 稳定版发布

    新酷产品第一时间免费试玩,还有众多优质达人分享独到生活经验,快来新浪众测,体验各领域最前沿.最有趣.最好玩的产品吧~!下载客户端还能获得专享福利哦! 原标题:Python 3.9.0 稳定版发布 IT ...

  9. 【Rust日报】 2019-08-12:Tokio alpha 版发布,新版本支持async/await

    Tokio alpha 版发布 #tokio 新版本支持async/await tokio = "=0.2.0-alpha.1" #![feature(async_await)]u ...

  10. StartOS 5.0 正式版发布

    StartOS 5.0正式版发布了. StartOS -- 是由东莞瓦力网络科技有限公司发行的开源操作系统,符合国人的使用习惯,预装常用的精品软件,操作系统具有运行速度快,安全稳定,界面美观,操作简洁 ...

最新文章

  1. LeetCode简单题之两数之和
  2. PHP CodeBase: 将时间显示为“刚刚”“n分钟/小时前”等
  3. Git CMD - push: Update remote refs along with associated objects
  4. git与github区别与简介
  5. 代码自解释不是不写注释的理由
  6. matlab eig 复杂度,MATLAB中的eig函数
  7. [vue] vue开发过程中你有使用什么辅助工具吗?
  8. C#多线程之旅(2)——详解线程的开始和创建
  9. python获取mysql数据为excel中的sheet_python 从excel、csv、mysql、txt获取数据源
  10. Java面试之Java基础知识第一季
  11. 【报告分享】2020年中国知识图谱行业研究报告.pdf(附下载链接)
  12. SQL:postgresql中查询日期date的方法
  13. 【java与智能设备】CH11 Android中常见数据格式解析
  14. centos长ping输出日志的脚本
  15. 太阳粒子是什么东西_太阳粒子流是什么
  16. 几种经典病毒动力学模型【基于matlab的动力学模型学习笔记_3】
  17. 异常,Map,File
  18. mysql数据库连接池锁_数据库连接池deadlock
  19. 银行与沪深300走势对比
  20. Linux的简单命令 who echo cal clear date

热门文章

  1. 自然语言处理的学习心得
  2. 使用3dmax渲染出二维画面的方法
  3. Xilinx FPGA PTP IEEE1588使用
  4. u盘文件名乱码linux,U盘文件名乱码的原因和解决办法
  5. 统计学和计算机的关系,浅议统计学与其他学科的关系
  6. java开源项目-SpringBoot在线教育平台
  7. html的跳转页面代码
  8. qt html ui,DSkin 的WebUI开发模式介绍,Html快速开发Winform的UI
  9. servlet+jsp面试题
  10. docx4j操作word文档之替换模板数据