TensorFlow 1.x最後一更、Android 10最新特性,這是谷歌開發者日

  • 2019 年 10 月 4 日
  • 筆記

機器之心報道

參與:思

教程、體驗、實戰?谷歌開發者日能滿足你對開發工具與開發體驗的所有好奇心。

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 調用參數都提供了國內鏡像,這樣才能流暢地打造整個小程序。

  • 開源地址:https://github.com/tensorflow/tfjs-wechat

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 各種模塊、各種功能特性的指南講座。