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