TensorFlow 1.x最后一更、Android 10最新特性,这是谷歌开发者日

简介: 教程、体验、实战?谷歌开发者日能满足你对开发工具与开发体验的所有好奇心。

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 简化整个开发流程。


微信图片_20211201225710.jpg


整个 TF 2.0 RC 版去除了很多不必要的 API,例如它统一了 tf.train.Optimizers 和 tf.keras.Optimizers,以后可能只需要使用第二种 API 了,尽管第一种在以前是最为常见的。总体而言,整个 TF 2.0 的 API 会改动很多,甚至 tf.app、tf.flags 和 tf.logging 在 RC 版中都去除了。


微信图片_20211201225713.png


此外,非常令人惊讶的是,TF 2.0 RC 版准备对 tf.Session 下手了,它以前在 1.x 中是必不可少的模块。谷歌表示,以前都是通过声明式的编程来构建并执行静态计算图,但是最新的 RC 版已经不再鼓励使用这种方式了,我们可以正常地写 Python 函数,然后再加上 tf.function 装饰器就能将其转化为计算图。这种方式转化的计算图还经过了一系列性能优化,它的表现更好。


在谷歌开发者日 KeyNote 过后,我们发现 TensorFlow 发布了 1.x 的最后一版。1.x 以后就不会再针对新特性进行更新了,不过至少在一年内,它还是会针对 Issue 或 Bug 进行维护的。


微信图片_20211201225717.jpg


支持微信的 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 是近年发展最迅速的编程语言之一。


微信图片_20211201225720.gif


值得注意的是,Android 10 内置了很多机器学习特性,包括利用离线的语音识别模型自动生成视频字幕、利用本地的机器学习模型实现操作推荐等等,其中操作推荐即在通知中显示与当下场景相关的建议操作。


在 Android 之外,另一大亮点即最新稳定版 Flutter 1.9 的正式发布。Flutter 是谷歌开源并维护的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。在 KeyNote 中,我们注意到 Flutter 目前还利用机器学习自动补全代码,这应该比较有意思。


微信图片_20211201225724.jpg


Flutter 团队产品经理樊舟颖表示,从去年 12 月到现在,Flutter 的用户已经增长了一倍多,且它在中国非常流行,有 1/5 的 Flutter 开发者都来自中国。1.9 目前是 Flutter 最大的一次版本更新,它合并了核心代码库与网页版 Flutter,甚至针对最新的 macOS Catalina,Flutter 也做好升级准备,顺利适配新平台。


好玩的开发者日


除了这些更新发布外,开发者日还发布了很多「好玩」的体验,包括*谷歌*艺术与文化 APP、Grow with Google 成长计划等等。其中谷歌艺术与文化通过「观妙中国」APP 允许爱好者足不出户欣赏高清艺术藏品,Grow with Google 则提供了一系列免费线上课程与学习工具,从而扩宽我们的数字化技能树。


在展区中,谷歌艺术与文化提供了智玩皮影、智舞窑变、智绘甲骨三大体验项目,它们都基于 TensorFlow 机器学习模型。例如智舞窑变,它会利用姿态检测模型识别人体的各种「舞姿」,然后根据你的姿态实时生成对应的瓷器形状及花纹。这些体验项目都挺受欢迎的,排队也就不会短啦。


微信图片_20211201225728.jpg


如上所示为展区的一角,我发现它还有另一个很吸引人的特色,即不同的主题都会配一个「Ask XXX」展台,我们可以问该主题的任何问题,如上 Google Cloud 就可以询问使用过程中的各种疑难杂症。


整体体验下来,谷歌开发者日的参与度非常高,KeyNote 的各个主题也有更详尽的专题演讲。甚至第二天整天都有 TensorFlow 的专题讲座,我们可以找到关于 TF 各种模块、各种功能特性的指南讲座。


文为机器之心报道,转载请联系本公众号获得授权

相关文章
|
1月前
|
Android开发 Swift iOS开发
iOS和安卓作为主流操作系统,开发者需了解两者差异以提高效率并确保优质用户体验。
【10月更文挑战第1天】随着移动互联网的发展,智能手机成为生活必需品,iOS和安卓作为主流操作系统,各有庞大的用户群。开发者需了解两者差异以提高效率并确保优质用户体验。iOS使用Swift或Objective-C开发,强调简洁直观的设计;安卓则采用Java或Kotlin,注重层次与动画。Swift和Kotlin均有现代编程特性。此外,iOS设备更易优化,而安卓需考虑更多兼容性问题。iOS应用仅能通过App Store发布,审核严格;安卓除Google Play外还可通过第三方市场发布,审核较宽松。开发者应根据需求选择合适平台,提供最佳应用体验。
62 3
|
2月前
|
Android开发 开发者 Kotlin
探索安卓开发中的新特性
【9月更文挑战第14天】本文将引导你深入理解安卓开发领域的一些最新特性,并为你提供实用的代码示例。无论你是初学者还是经验丰富的开发者,这篇文章都会给你带来新的启示和灵感。让我们一起探索吧!
|
1月前
|
IDE Android开发 iOS开发
探索安卓与iOS系统的技术差异:开发者的视角
本文深入分析了安卓(Android)与苹果iOS两大移动操作系统在技术架构、开发环境、用户体验和市场策略方面的主要差异。通过对比这两种系统的不同特点,旨在为移动应用开发者提供有价值的见解,帮助他们在不同平台上做出更明智的开发决策。
|
2月前
|
监控 Android开发 iOS开发
深入探索安卓与iOS的系统架构差异:理解两大移动平台的技术根基在移动技术日新月异的今天,安卓和iOS作为市场上最为流行的两个操作系统,各自拥有独特的技术特性和庞大的用户基础。本文将深入探讨这两个平台的系统架构差异,揭示它们如何支撑起各自的生态系统,并影响着全球数亿用户的使用体验。
本文通过对比分析安卓和iOS的系统架构,揭示了这两个平台在设计理念、安全性、用户体验和技术生态上的根本区别。不同于常规的技术综述,本文以深入浅出的方式,带领读者理解这些差异是如何影响应用开发、用户选择和市场趋势的。通过梳理历史脉络和未来展望,本文旨在为开发者、用户以及行业分析师提供有价值的见解,帮助大家更好地把握移动技术发展的脉络。
95 6
|
2月前
|
前端开发 Java 数据库
💡Android开发者必看!掌握这5大框架,轻松打造爆款应用不是梦!🏆
在Android开发领域,框架犹如指路明灯,助力开发者加速应用开发并提升品质。本文将介绍五大必备框架:Retrofit简化网络请求,Room优化数据库访问,MVVM架构提高代码可维护性,Dagger 2管理依赖注入,Jetpack Compose革新UI开发。掌握这些框架,助你在竞争激烈的市场中脱颖而出,打造爆款应用。
373 3
|
2月前
|
IDE Java Android开发
安卓与iOS开发环境的差异及其对开发者的影响
在数字时代的浪潮中,移动应用成为人们生活的延伸。两大操作系统——安卓与iOS,如同两座技术高峰,各自占据着半壁江山。本文将探索这两个平台的开发环境差异,并讨论这些差异如何塑造开发者的编程习惯与职业选择。我们将从工具和语言、用户界面设计、系统架构、市场定位以及开发社区和资源五个方面进行比较,旨在为开发者提供一份实用的指南,帮助他们在不断变化的技术世界中,找到适合自己的发展路径。
55 3
|
1月前
|
开发工具 Android开发 iOS开发
移动应用开发的艺术:探索Android与iOS的操作系统特性
【9月更文挑战第33天】在数字时代的浪潮中,移动应用已成为我们日常生活不可或缺的一部分。本文将深入探讨两个主流移动操作系统——Android和iOS——的独特特性,并分析它们如何影响移动应用的开发过程。我们将通过比较这两个系统的设计哲学、用户界面(UI)设计、开发工具以及市场策略,来揭示开发者如何在这些不同的平台上打造出色的用户体验。无论你是开发者还是对移动技术感兴趣的读者,这篇文章都将为你提供宝贵的见解。
|
2月前
|
移动开发 开发工具 Android开发
安卓与iOS开发:平台差异及其对开发者的影响
在移动开发的大潮中,安卓和iOS两大阵营各领风骚。本文将探讨这两个平台的关键差异,包括开发环境、编程语言、用户界面设计、应用分发以及商业模式等方面。通过比较分析,我们旨在为开发者提供一个清晰的指导,帮助他们根据项目需求和个人偏好做出明智的平台选择。同时,文章也将分享一些跨平台开发工具的使用经验,以期最大化开发效率和市场覆盖。
70 1
|
2月前
|
监控 算法 数据可视化
深入解析Android应用开发中的高效内存管理策略在移动应用开发领域,Android平台因其开放性和灵活性备受开发者青睐。然而,随之而来的是内存管理的复杂性,这对开发者提出了更高的要求。高效的内存管理不仅能够提升应用的性能,还能有效避免因内存泄漏导致的应用崩溃。本文将探讨Android应用开发中的内存管理问题,并提供一系列实用的优化策略,帮助开发者打造更稳定、更高效的应用。
在Android开发中,内存管理是一个绕不开的话题。良好的内存管理机制不仅可以提高应用的运行效率,还能有效预防内存泄漏和过度消耗,从而延长电池寿命并提升用户体验。本文从Android内存管理的基本原理出发,详细讨论了几种常见的内存管理技巧,包括内存泄漏的检测与修复、内存分配与回收的优化方法,以及如何通过合理的编程习惯减少内存开销。通过对这些内容的阐述,旨在为Android开发者提供一套系统化的内存优化指南,助力开发出更加流畅稳定的应用。
73 0
|
3月前
|
编译器 Android开发 开发者
Android经典实战之Kotlin 2.0 迁移指南:全方位优化与新特性解析
本文首发于公众号“AntDream”。Kotlin 2.0 已经到来,带来了 K2 编译器、多平台项目支持、智能转换等重大改进。本文提供全面迁移指南,涵盖编译器升级、多平台配置、Jetpack Compose 整合、性能优化等多个方面,帮助开发者顺利过渡到 Kotlin 2.0,开启高效开发新时代。
171 0