0
本文作者: 叢末 | 2019-03-07 20:01 |
雷鋒網(wǎng) AI 科技評論按:3 月 7 日凌晨,谷歌 TensorFlow 開發(fā)者峰會(TensorFlow Dev Summit 2019)在美國加州舉行。自今年 1 月份谷歌放出 TensorFlow 2.0 開發(fā)者預覽版,開發(fā)者們?nèi)缃窠K于迎來了萬眾期待的 TensorFlow 2.0 Alpha 版的正式發(fā)布。也許是為了呼應(yīng)谷歌此前將 TensorFlow 2.0 稱作重要的「里程碑」,TensorFlow 的 Logo 也從過去的三維積木狀變成了扁平化風格的「T」和「F」字母拼接。
除了發(fā)布 TensorFlow 2.0 Alpha 版,谷歌在本次大會上還發(fā)布了「一籮筐」圍繞 TensorFlow 的其他軟件的更新和最新成果,包括:經(jīng)過更新的 TensorFlow Lite 1.0、TensorFlow js 1.0 和 Swift for TensorFlow 0.2 ,端到端的機器學習平臺 TensorFlow Extended (TFX) 以及兩款面向隱私問題的 TensorFlow Federated 開源框架和 TensorFlow Privacy 開源庫。
另外值得一提的是,隨著 TensorFlow 2.0 Alpha 版的到來,谷歌還發(fā)布了兩門深度學習課程:Udacity 的《TensorFlow 深度學習簡介》和 Deeplearning.ai 的《TensorFlow:從基礎(chǔ)知識到掌握專業(yè)化》系列課程。
今年 1 月份,谷歌就放出 TensorFlow 2.0 開發(fā)者預覽版,引起了開發(fā)者們的滿腔期待。而不到兩個月后隨之而來的 TensorFlow 開發(fā)者峰會,其最受關(guān)注的環(huán)節(jié)莫過于 TensorFlow 2.0 Alpha 版的發(fā)布。
據(jù)悉,針對 TensorFlow 2.0,TensorFlow 團隊聽取了開發(fā)者關(guān)于「簡化 API、減少冗余并改進文檔和示例」的建議來進行設(shè)計,將 TensorFlow 2.0 Alpha 版的更新重點放在簡單和易用性上,主要進行了以下更新:
使用 Keras 和 eager execution,輕松建立簡單的模型并執(zhí)行
在任何平臺上的實現(xiàn)生產(chǎn)環(huán)境的模型部署
為研究提供強大的實驗工具
通過清除不推薦使用的 API 和減少重復來簡化 API
同時,在過去的幾年中,谷歌陸續(xù)在 TensorFlow 中添加了許多組件,而 TensorFlow 2.0 Alpha 版中則將這些組件將打包成了一個綜合性平臺,支持從訓練到部署的機器學習工作流,其新架構(gòu)的簡化概念圖如下所示:
而更簡單化的新框架更是帶來了更加簡潔的工作流,即:先使用 tf.data 創(chuàng)建的輸入管道讀取訓練數(shù)據(jù);然后使用 tf.keras 或 Premade Estimators 構(gòu)建、訓練和驗證模型;接著用 eager execution 進行運行和調(diào)試;再使用 Distribution Strategy API 在不更改模型定義的情況下,基于 CPU、GPU 等不同硬件配置上分布和訓練模型;最后將模型導出到 SavedModel 保存。其工作流如下圖所示:
此外,TensorFlow 2.0 Alpha 版還帶來了一些新的功能,允許研究人員和高級用戶使用豐富的擴展進行實驗,如 Ragged Tensors、TensorFlow Probability、Tensor2Tensor 等。
為了簡化代碼遷移到 TensorFlow 2.0 的過程,谷歌還提供一個轉(zhuǎn)換工具和指導文檔用來更新 TensorFlow 1.x Python 代碼以使用與 TensorFlow 2.0 兼容的 API,并將無法自動轉(zhuǎn)換的代碼標記出來。
在 API 方面的更新也是 TensorFlow 2.0 Alpha 版的一大亮點,其將 Keras API 指定為構(gòu)建和訓練深度學習模型的高級 API,并舍棄掉其他 API。另外值得一提的是,Keras 提供了幾個模型構(gòu)建 API,例如可以利用 Sequential API 構(gòu)建模型,然后使用「compile」和「fit」,tensorflow.org 中所有常見的」tf.keras」示例均可在 2.0 中便捷使用。
TensorFlow 2.0 Alpha 版的另一個最明顯的改變就是將用于機器學習的實驗和研究平臺——Eager execution 設(shè)置為默認優(yōu)先模式,這就意味著任何運算在調(diào)用后就會立即運行,從而不再需要預先定義靜態(tài)圖,就可以通過「tf.Session.run()」執(zhí)行圖的各個部分,讓執(zhí)行過程變得更加簡單和快捷。
此外,Eager execution 還有助于原型制作、調(diào)試和監(jiān)控運行中的代碼,用戶可使用 Python 調(diào)試程序檢查變量、層及梯度等對象,并利用裝飾器「@tf.function」中內(nèi)置的 Autograph 直接獲取圖表優(yōu)化和效率,這整個過程不僅能夠保留 TensorFlow1.x 基于靜態(tài)計算圖執(zhí)行的所有優(yōu)點:性能優(yōu)化、遠程執(zhí)行,以及序列化、導出和部署的能力,同時還增加了用簡單 Python 表達程序的靈活性和易用性。
整體而言,TensorFlow 2.0 Alpha 版具有以下三大特性:
第一,易用性,其主要體現(xiàn)在使用 tf.keras 作為高級 API,且將 Eager execution 作為默認模式。
第二,簡潔性,其主要體現(xiàn)在 TensorFlow 2.0 Alpha 版刪除了重復的功能,并且不同 API 的調(diào)用語法也變得一致、直觀,同時它的兼容性更加完善。
第三,靈活性,其主要體現(xiàn)在 TensorFlow 2.0 Alpha 版提供了完整的低級 API,并可以在 tf.raw_ops 中訪問內(nèi)部操作,同時還提供了變量、checkpoint 以及層的可繼承接口。
開發(fā)者峰會上,TensorFlow 工程總監(jiān) Rajat Monga 也向大家呈現(xiàn)了 TensorFlow 這幾年來的「戰(zhàn)績」:自 2015 年 11 月推出以來,TensorFlow 總下載量超過 4100 萬次,提交了 5 萬多次代碼更新,目前已有 1800 多名來自全世界的貢獻者。
而隨著更加順從民意、使用更加簡單的 TensorFlow 2.0 Alpha 版的發(fā)布,TensorFlow 又將收獲怎樣的成績呢?大家可以拭目以待。
TensorFlow 2.0 Alpha 版官方網(wǎng)址:https://www.tensorflow.org/alpha
TensorFlow 2.0 Alpha 版開源地址:https://github.com/orgs/tensorflow/projects/4
注:針對不同級別的開發(fā)者,TensorFlow 2.0 Alpha 版設(shè)置了兩版教程:
初學者版:使用的是 Keras Sequential API,這是最簡單的 TensorFlow 2.0 入門方法。
資深人士版:展示如何命令式地編寫正向傳遞、如何使用 GradientTape 編寫自定義訓練循環(huán),以及如何使用 tf.function 一行代碼自動編譯代碼。
伴隨著 TensorFlow 2.0 Alpha 版的發(fā)布,谷歌還特別應(yīng)景地一同發(fā)布了配套的深度學習課程:Deeplearning.ai 的《TensorFlow:從入門到精通》(「TensorFlow: From Basics to Mastery Specialization」)和優(yōu)達學城的《TensorFlow 深度學習簡介》(「Intro to TensorFlow for Deep Learning」)。
《TensorFlow:從入門到精通》是 Deeplearning.ai 的一系列實踐課程,由吳恩達老師參與開發(fā)并執(zhí)教,目的在于幫助大家了解:
如何在 TensorFlow 中構(gòu)建機器學習模型
利用深度神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建圖像識別算法了解
如何在移動設(shè)備和網(wǎng)絡(luò)上部署模型
學習圖像識別以外的物體檢測、文本識別等,進入等
擴展針對自定義學習/訓練的基本 API
除了吳恩達老師,該課程的另一重量級教師為 Laurence Moroney 博士。
該課程分四周進行,課程安排為:
第一周:介紹一種新的變成范式
第二周:計算機視覺簡介
第三周:利用卷積神經(jīng)網(wǎng)絡(luò)增強計算機視覺
第四周:利用真實世界的圖像
課程鏈接地址:https://www.deeplearning.ai/tensorflow-specialization/
《TensorFlow 深度學習簡介》則是優(yōu)達學城的免費課程,它自 2016 年推出以來,目前已有超過 40 萬名學生參加,而今天則正式成為 Deeplearning.ai TensorFlow 系列課程的一部分。該課程從實踐的角度講解了軟件深度學習知識,以及在移動設(shè)備、云端和瀏覽器上實際運行 TensorFlow 模型,讓學生掌握創(chuàng)建 AI 應(yīng)用所需的所有技能。
該課程目前已經(jīng)更新了 4 堂課,分別為:第一堂課:課程大綱介紹;第二堂課:機器學習簡介;第三堂課:訓練 MNIST 模型;第四堂課:CNN 簡介。目前,該 4 堂課已全部上線,而第 5 堂課則還未更新。
課程鏈接地址:https://www.udacity.com/course/intro-to-tensorflow-for-deep-learning--ud187
正式發(fā)布 TensorFlow.js 1.0 、TensorFlow Lite 1.0
實際上,除了 TensorFlow 2.0 Alpha 版,本次峰會的另一亮點便是正式發(fā)布 TensorFlow.js 1.0 和 TensorFlow Lite 1.0 了。
自 2018 年發(fā)布以來,TensorFlow.js 被大量采用,目前其下載量達 30 萬次,Github 星標數(shù)量超過 1 萬,項目貢獻者超過 100 個。本次正式發(fā)布的 TensorFlow.js 1.0 版本,在先前版本的基礎(chǔ)上進行的更新包括:增加了一個針對 Web 開發(fā)人員的面向圖像、文本、語音等常見機器學習任務(wù)的現(xiàn)成模型庫;添加了運行 JS 的更多平臺,例如桌面 app、移動端本地的平臺等。另外,該版本在性能上有了較大的提升。
作為一個面向移動和嵌入式設(shè)備打造的輕量級、跨平臺解決方案,TensorFlow Lite 主要解決的問題是:機器學習在手機、汽車、可穿戴設(shè)備等終端設(shè)備上面臨著有限的計算力、內(nèi)存以及電池容量等諸多限制。
自 2017 年 5 月的谷歌 I/O 開發(fā)者大會被首次提出以來,TensorFlow Lite 目前已部署到超 20 億移動設(shè)備中,并已應(yīng)用到谷歌搜索、谷歌助手、Pixel Visual Core 等諸多原生谷歌應(yīng)用和服務(wù)、以及谷歌合作伙伴的產(chǎn)品中。TensorFlow Lite 對于谷歌的重要性不言而喻,本次正式發(fā)布 TensorFlow Lite 1.0 可謂是眾望所歸。
TensorFlow.js 1.0 版本開源地址:https://github.com/tensorflow/tfjs/releases
為 TensorFlow 家族再添兩位新成員
另外,谷歌還為 TensorFlow 家族再添了兩位新成員:TensorFlow Federated(TFF)開源框架和 TensorFlow Privacy 機器學習開源庫。
TensorFlow Federated(TFF)是一個開源框架,適用于面向分散式數(shù)據(jù)執(zhí)行機器學習和其他計算。它采用一種聯(lián)合學習(Federated Learning,F(xiàn)L)的機器學習方法,可在多個客戶端上訓練共享的全局模型,同時在本地保存訓練數(shù)據(jù)。
TensorFlow Privacy 則是一個 TensorFlow 機器學習開源庫,能夠讓開發(fā)人員更容易培訓具有強大隱私保障的 AI 模型。谷歌表示,計劃將 TensorFlow Privacy 發(fā)展成為培訓機器學習模型的最佳技術(shù)中心,并提供強大的隱私保障。
TensorFlow Federated 開源地址:https://github.com/tensorflow/federated
TensorFlow Privacy 開源地址:https://github.com/tensorflow/privacy
對 2019 年度 TensorFlow 開發(fā)者峰會感興趣的同學,可前往峰會官網(wǎng):https://www.tensorflow.org/dev-summit 回看視頻并查看相關(guān)信息。雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。