机器之心报道
参与:思
教程、体验、实战?谷歌开发者日能满足你对开发工具与开发体验的所有好奇心。
2019 谷歌开发者大会于 9 月 10 日和 11 日在上海举办,大会将分享众多开发经验与工具。在第一天的 KeyNote 中,谷歌发布了很多开发工具新特性,并介绍而它们是如何构建更好的应用。值得注意的是,TensorFlow 刚刚发布了 2.0 RC01 版和 1.15,谷歌表示 1.15 是 1.x 的最后一次更新了。
除此之外,微信小程序的 TensorFlow.js 插件、Android 10 的发布、Flutter 1.9 的发布都非常吸引人,其中 Flutter 是最主流的跨平台 UI 框架之一。
TensorFlow 从 1.x 到 2.0 RC
在 KeyNote 中,非常令人惊奇的是,谷歌高级软件工程师 Anna Goldie 用中文向大家介绍了 TensorFlow 2.0 近来的发展。TensorFlow 2.0 不仅发布了 Release Candidate,与此同时,谷歌还发布了 TensorFlow 1.x 的最后一版 1.15。Goldie 表示,谷歌同样也为微信小程序配置了 TensorFlow.js 插件。所有这些更新,都是为了能更高效地构建与应用机器学习模型。
TensorFlow 2.0 相信大家已经非常熟悉了,机器之心之前也介绍过 2.0 的很多新特性。但是在刚刚发布的 TF 2.0 RC01 版中,它重点还是放在优化 Keras 和 Eager Execution 的能力,它希望通过这这两种 API 简化整个开发流程。
整个 TF 2.0 RC 版去除了很多不必要的 API,例如它统一了 tf.train.Optimizers 和 tf.keras.Optimizers,以后可能只需要使用第二种 API 了,尽管第一种在以前是最为常见的。总体而言,整个 TF 2.0 的 API 会改动很多,甚至 tf.app、tf.flags 和 tf.logging 在 RC 版中都去除了。
此外,非常令人惊讶的是,TF 2.0 RC 版准备对 tf.Session 下手了,它以前在 1.x 中是必不可少的模块。谷歌表示,以前都是通过声明式的编程来构建并执行静态计算图,但是最新的 RC 版已经不再鼓励使用这种方式了,我们可以正常地写 Python 函数,然后再加上 tf.function 装饰器就能将其转化为计算图。这种方式转化的计算图还经过了一系列性能优化,它的表现更好。
在谷歌开发者日 KeyNote 过后,我们发现 TensorFlow 发布了 1.x 的最后一版。1.x 以后就不会再针对新特性进行更新了,不过至少在一年内,它还是会针对 Issue 或 Bug 进行维护的。
支持微信的 TensorFlow
除了常规平台上的框架更新,Goldie 在 KeyNote 中还介绍了用于微信小程序的 TensorFlow.js 插件,该插件封装了 TensorFlow.js 库,用于提供给第三方小程序调用。
我们可以在小程序管理后台的「第三方服务-插件管理」中添加插件,就能直接在小程序上部署机器学习模型。更便捷的是,我们可以直接从 tfjs 模型库调用预训练模型,不论是视觉、语音还是自然语言相关的能力。此外,为了方便国内开发者的使用,该插件的 URL 调用参数都提供了国内镜像,这样才能流畅地打造整个小程序。
Android 10 与 Flutter
几天前谷歌发布了 Android 10,它利用前沿机器学习技术,帮助折叠屏和 5G 的实际应用,从而提供更好的移动端体验。KeyNote 重点介绍了 Android 10 的两大更新主题,即用户与开发。其中用户主要体现在原生支持 5G 以及更强大的安全与隐私控制,而开发主要体现在编程语言与工具的创新。
对于 Android 10 的 5G 平台支持,我们可调用网络连接 API 判定设备是否可以高速联网,以及当前的网络是否计费,这样开发调用 5G 网络的 APP 就会方便很多。因为 5G 网络能大幅度降低网络延迟并提高数据传输速度,那么它对机器学习模型的宽容度会增加很多,更多适合用云计算的大模型也能通过 API 直接调用。
另外对于开发者,Android 10 好不好很大程度在于开发工具是不是高效。KeyNote 介绍了非常多的开发工具,例如下图所示的 Kotlin 语言,如果要实现相同的功能,它的代码量远远少于一版的 Java 编程。Android 首席技术推广工程师 Chet Haase 表示,Kotlin 是近年发展最迅速的编程语言之一。
值得注意的是,Android 10 内置了很多机器学习特性,包括利用离线的语音识别模型自动生成视频字幕、利用本地的机器学习模型实现操作推荐等等,其中操作推荐即在通知中显示与当下场景相关的建议操作。
在 Android 之外,另一大亮点即最新稳定版 Flutter 1.9 的正式发布。Flutter 是谷歌开源并维护的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。在 KeyNote 中,我们注意到 Flutter 目前还利用机器学习自动补全代码,这应该比较有意思。
Flutter 团队产品经理樊舟颖表示,从去年 12 月到现在,Flutter 的用户已经增长了一倍多,且它在中国非常流行,有 1/5 的 Flutter 开发者都来自中国。1.9 目前是 Flutter 最大的一次版本更新,它合并了核心代码库与网页版 Flutter,甚至针对最新的 macOS Catalina,Flutter 也做好升级准备,顺利适配新平台。
好玩的开发者日
除了这些更新发布外,开发者日还发布了很多「好玩」的体验,包括*谷歌*艺术与文化 APP、Grow with Google 成长计划等等。其中谷歌艺术与文化通过「观妙中国」APP 允许爱好者足不出户欣赏高清艺术藏品,Grow with Google 则提供了一系列免费线上课程与学习工具,从而扩宽我们的数字化技能树。
在展区中,谷歌艺术与文化提供了智玩皮影、智舞窑变、智绘甲骨三大体验项目,它们都基于 TensorFlow 机器学习模型。例如智舞窑变,它会利用姿态检测模型识别人体的各种「舞姿」,然后根据你的姿态实时生成对应的瓷器形状及花纹。这些体验项目都挺受欢迎的,排队也就不会短啦。
如上所示为展区的一角,我发现它还有另一个很吸引人的特色,即不同的主题都会配一个「Ask XXX」展台,我们可以问该主题的任何问题,如上 Google Cloud 就可以询问使用过程中的各种疑难杂症。
整体体验下来,谷歌开发者日的参与度非常高,KeyNote 的各个主题也有更详尽的专题演讲。甚至第二天整天都有 TensorFlow 的专题讲座,我们可以找到关于 TF 各种模块、各种功能特性的指南讲座。