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