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

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

3天内不再提示

TensorFlow2.0终于问世,Alpha版可以抢先体验

DPVg_AI_era 来源:lp 2019-03-08 09:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

TensorFlow2.0终于问世,Alpha版可以抢先体验。新版本主打简单易用可扩展,大大简化API,最后,连logo也改了。

TensorFlow 2.0终于来了!

今天凌晨,谷歌在加州举办TensorFlow开发者峰会(TensorFlow Dev Summit),正式发布2.0版本。

这场发布会有几大亮点:

TensorFlow 2.0Alpha版发布,用户现在可以抢先体验;

2.0版本具有简易性、更清晰、扩展性三大特征,大大简化API;

提高了TensorFlow Lite和TensorFlow.js部署模型的能力;

发布会还把TensorFlow目前的家底透露了一遍:目前TF在全球已经有超过4100万的下载次数,社区有超过1800多个贡献者。

尽管官方没有透露中国社区的情况,但是发布会现场展示一张全球地图,根据图中的用户分布情况可以推测,目前TF中国应该是仅次于美国和欧洲的第三大地区。

另外一个值得注意的变化是,从2.0开始,TensorFlow的logo也不一样,从类似积木的形状变成了两个分开的字母“T”和“F”,或许也意味着减少冗余,看上去更简洁。

简单易用可扩展,TF2.0迎来新架构

TensorFlow 已经发展为世界上最受欢迎和被广泛采用的机器学习平台之一,自2015年问世,并在去年11月迎来三周岁生日。

之前开发者反馈,希望TensorFlow能够简化API、减少冗余并改进文档和示例。这次2.0发布,听取了开发者的建议,因此新版本有以下三大特点:简单、强大、可拓展。

基于这三大特点,TensorFlow 2.0也有新架构,如下面的简化概念图所示:

TensorFlow 2.0 将专注于简单性和易用性,具有以下更新:

使用 Keras 和 eager execution,轻松构建模型

在任意平台上实现生产环境的稳健模型部署

为研究提供强大的实验工具

通过清理废弃的 API 和减少重复来简化 API

下面详细介绍TF2.0的新特性。

易用至上,TensorFlow 2.0 Alpha发布

这次TensorFlow的一些列更新,重点就在于:让你使用得更加简单。

TensorFlow 2.0发布以后,训练的流程将变得十分简洁:

主要流程就是:数据集成和转换→模型构建→训练→保存模型。

当然,TensorFlow也秉承着“哪儿都可以部署”的原则,使其在应用方面更加灵活和方便:

下面是TensorFlow2.0在这次更新中的几大亮点:

TensorFlow Alpha

更易用:诸如tf.keras等高级API将更易于使用;并且Eager execution将成为默认设置。例如:

>>>tf.add(2,3)

更清晰:删除了重复的功能;不同API的调用语法更加一致、直观;兼容性更加完善。

更灵活:提供完整的低级API;可在tf.raw_ops中访问内部操作;提供变量、checkpoint和层的可继承接口

当然,TensorFlow 2.0 Alpha版本从安装上便十分的简单,仅需一句话:

pip install -U --pre tensorflow

而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 风格编写的自定义训练循环:

deftrain_one_step(model,optimizer,x,y):withtf.GradientTape()astape: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)returnlossdeftrain(model,optimizer):train_ds=mnist_dataset()step=0loss=0.0forx,yintrain_ds:step+=1loss=train_one_step(model,optimizer,x,y)iftf.equal(step%10,0):tf.print('Step',step,':loss',loss,';accuracy',compute_accuracy.result())return step, loss, accuracy

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

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

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

@tf.functiondeftrain(model,optimizer):train_ds=mnist_dataset()step=0loss=0accuracy=0forx,yintrain_ds:#如上所述,包括“if”和“print()”return step

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

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

此外,TensorFlow 2.0 完全支持 Estimator。

tensorflow.org/alpha 链接

https://www.tensorflow.org/alpha

高级API变化

TensorFlow 2.0 在API上可谓是下足了功夫,在这个版本中,高级API将十分“易于扩展”且“扩展地很容易”:

例如,对tf.keras.optimizer tf.keras.layers tf.keras.loss等一些列高级API都做了“易用性”的优化。例如:

值得注意的是,尤其是对诸如RNN layers等神经网络的高级API做了优化,用户还可以对其自定义。

可谓是开发者福音。

升级

TensorFlow 2.0 将包含许多 API 变更,例如,对参数进行重新排序、重新命名符号和更改参数的默认值。手动执行所有这些变更不仅枯燥乏味,而且容易出错。

为简化变更过程并让开发者尽可能顺畅地过渡到 TensorFlow 2.0,TensorFlow 工程团队创建了实用程序tf_upgrade_v2,可将旧代码转换至新 API。

tf_upgrade_v2 链接

https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/upgrade.md

TensorFlow.js v1.0

TensorFlow for Javascript已经有300,000次下载和100个贡献者。 今天TensorFlow.js的1.0版本包括性能改进。

例如浏览器中MobileNet v1推理的9倍提升。 还有针对Web开发人员的新现成模型和更广泛的平台支持。

TensorFlow Lite:超20亿移动设备部署使用

TensorFlow Lite是一个为移动和嵌入式设备打造的轻量级、跨平台解决方案。

这样一个轻量级的解决方案很有必要,因为机器学习越来越多地转移到终端设备,如手机、汽车、可穿戴设备等。在这样的设备上使用ML有很多限制,如有限的计算能力、有限的内存、电池限制等,TensorFlow Lite可以很大程度上解决这些限制。

TensorFlow Lite的用例

一个惊人的事实:已经有20亿移动设备部署使用了TensorFlow Lite。

说明,TensorFlow Lite有很多国内外客户……

网易有道技术总监林会杰作为“为什么选择TensorFlow Lite”的代表,受邀上台介绍了有道翻译应用TensorFlow Lite取得的成果。

TensorFlow Lite四大主题:

可用性(Usability):拿来即用

性能(Performance):模型执行速度更快

优化(Optimization):让你的模型更小、更快

文档(Documentation):有很多资源

可用性:部署简单,拿来即用

保存模型,转换到TF Lite,就是这么简单。

新的TensorFlow Select功能让模型转换到TensorFlow Lite更简单。

性能:在可用的硬件条件下,让模型执行尽可能快

有多快呢?训练MobileNet v1,CPU、GPU和Edge TPU下推理速度分别提升了1.9倍、7.7倍和62倍!

优化:让模型更小、更快

优化表现:

文档:

One More Thing:

TensorFlow Lite工程师Pete Warden上台介绍了一个非常酷的“小玩意”:

是一个名为珊瑚(Coral)的小型开发板,一款可以构建和试验AI设备的硬件。

它的原理类似树莓派,但使用了定制的Google处理器,专为AI设计。没错,在这个小小的板上,你可以运行TensorFlow。

Warden展示了一个小demo:

说一个特定的单词,Coral板上黄色的小灯会应声亮起来。

模型只有20KB大小,运行使用不到100KB的RAM和80KB Flash。

谷歌表示:“Coral提供了一个完整的本地AI工具包,可以轻松地将你的想法从原型变成到产品。”

像树莓派一样,可以期待更多使用Coral开发的有趣的事情。

售价149.99美元,传送门:

https://coral.withgoogle.com/products/

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

    关注

    27

    文章

    6258

    浏览量

    111959
  • 机器学习
    +关注

    关注

    67

    文章

    8562

    浏览量

    137209
  • tensorflow
    +关注

    关注

    13

    文章

    336

    浏览量

    62369

原文标题:TensorFlow 2.0 新鲜出炉!新版本,新架构,新特性

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    在 NPU 上运行了 eIQ TensorFlow Lite 示例模型报错

    我们已经在 NPU 上运行了 eIQ TensorFlow Lite 示例模型,但它们失败并出现以下错误: 信息:加载的模型 mobilenet_v1_1.0_224_quant.tflite
    发表于 03-18 06:52

    Alpha Wire 工业电缆材料性能与极端条件应用解析

    Alpha Wire 工业电缆大量采用热塑性弹性体(TPE)等高性能护套材料,在低温环境下依然保持良好柔性,在高温条件下则具备稳定的机械和电气性能。这类材料相比传统 PVC,在低温柔韧性和抗环境应力开裂方面更具优势,适合温差变化频繁的工业现场。
    的头像 发表于 01-30 09:40 297次阅读
    <b class='flag-5'>Alpha</b> Wire 工业电缆材料性能与极端条件应用解析

    二阶滤波器C代码的实现

    * PI * fc / fs; [*] sin_w0 = sin(w0); [*] cos_w0 = cos(w0); [*] alpha = sin_w0 / (2.0 * q_value
    发表于 01-27 07:09

    一阶低通滤波器代码的分享

    传感器返回的数据里面有用数据的频率都比较滴,而噪声信号的频率普遍都 比较高。所以可以通过设计一个低通滤波器来对数据进行滤波。 #ifndef _LPF_FIRST_ORDER_H #define
    发表于 01-21 08:12

    如何在TensorFlow Lite Micro中添加自定义操作符(1)

    来支持各种神经网络层的计算。也就是说,我们不仅可以使用内嵌的算子运算,还可以自己注册一个新的算子,更加的灵活。本期就将用两期的文章以 `reshape.cpp` 为例,详细说明如何在 TensorFlow Lite Micro
    的头像 发表于 12-26 10:34 5750次阅读

    SmartBug2.0用户指南:硬件特性、连接方式及应用详解

    SmartBug2.0用户指南:硬件特性、连接方式及应用详解 在电子设备不断发展的今天,多功能、易操作的传感器模块备受关注。InvenSense的SmartBug2.0模块就是这样一款产品,它具备
    的头像 发表于 12-26 09:15 601次阅读

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

    库,则编译出来的OpenCV库不可以TensorFlow-Lite代码使用,并且睿莓1开发板自带的2G内存其实也无法支撑OpenCV的完整编译过程,在编译途中就会发生内存交换错误。要解决此问题,方法
    发表于 09-12 22:43

    ALPHA2000-3015G-DB3电路图资料

    电子发烧友网站提供《ALPHA2000-3015G-DB3电路图资料.pdf》资料免费下载
    发表于 09-11 16:17 1次下载

    ALPHA2000-3015G-DB2电路图资料

    电子发烧友网站提供《ALPHA2000-3015G-DB2电路图资料.pdf》资料免费下载
    发表于 09-11 16:16 1次下载

    ALPHA2000-3015G-DB1电路图资料

    电子发烧友网站提供《ALPHA2000-3015G-DB1电路图资料.pdf》资料免费下载
    发表于 09-11 16:15 2次下载

    2.0-6.0 GHz GaAs SPDT 开关 skyworksinc

    2.0-6.0 GHz GaAs SPDT 开关真值表,2.0-6.0 GHz GaAs SPDT 开关管脚等资料,希望可以帮助到广大的电子工程师们。
    发表于 08-06 18:33
    <b class='flag-5'>2.0</b>-6.0 GHz GaAs SPDT 开关 skyworksinc

    无法将Tensorflow Lite模型转换为OpenVINO™格式怎么处理?

    Tensorflow Lite 模型转换为 OpenVINO™ 格式。 遇到的错误: FrontEnd API failed with OpConversionFailure:No translator found for TFLite_Detection_PostProcess node.
    发表于 06-25 08:27

    国星光电InfoComm 2025亮点抢先

    全球视听技术盛宴InfoComm 2025即将启幕!国星光电将携创新技术矩阵强势登陆奥兰多!从微间距显示核心到多场景显示应用,三大亮点抢先看!
    的头像 发表于 06-11 09:29 1106次阅读

    请问在Windows10下可以安装USB2.0驱动么?

    请问在Windows10下可以安装USB2.0驱动么?为什么HID的实例无法运行,且用烧录程序后,这样显示,能具体告知如何正确导入hid_kd程序么,如何让CY7C68013实现HID功能么?
    发表于 06-03 10:22

    Cyusb3014 an_75779的固件可以修改为在USB 2.0端口输出UVC视频流吗?

    Cyusb3014 an_75779 的固件可以修改为在 USB 2.0 端口输出 UVC 视频流吗? 具体修改方法麻烦吗? 谢谢!
    发表于 05-13 07:34