機(jī)器之心報(bào)道 機(jī)器之心編輯部
自 2015 年開源以來,TensorFlow 得到了越來越多開發(fā)者的認(rèn)可,成為了當(dāng)前最受歡迎的深度學(xué)習(xí)框架之一。據(jù)現(xiàn)場介紹,目前為止 TensorFlow 已經(jīng)被下載超過 4100 萬次、提交 5 萬多次代碼更新、1800 多位貢獻(xiàn)者。 與此同時(shí),這 3 年來深度學(xué)習(xí)框架之爭越來越激烈:Facebook 主推的 PyTorch 成為后起之秀,有力壓 TensorFlow 之勢;2016 年國內(nèi)科技巨頭百度發(fā)布 PaddlePaddle,2018 年底發(fā)布的 PaddlePaddle 1.0 版本標(biāo)志著該框架走向成熟。 不得不說,迫于 PyTorch 的壓力,TensorFlow 2.0 有了眾多改變,例如 2018 年 9 月份在上海谷歌開發(fā)者大會上,機(jī)器之心了解到一個(gè)重大改變是將會把 Eager Execution 變?yōu)?TensorFlow 默認(rèn)的執(zhí)行模式。2019 年 1 月份,谷歌上線了 TensorFlow 2.0「開發(fā)者預(yù)覽版」,讓開發(fā)者們可以嘗試使用。 下圖展示了近幾年 TensorFlow 的版本更新。但今天,TensorFlow 已經(jīng)成熟為一個(gè)完全端到端的生態(tài)系統(tǒng),所以今天發(fā)布的 TensorFlow 2.0 標(biāo)志著一個(gè)新時(shí)代的開始。 發(fā)布 TF 2.0 Alpha 版 TensorFlow 作為下載量最大的深度學(xué)習(xí)框架,過去收到了大量的反饋。據(jù)介紹,TensorFlow 用戶希望能夠有更簡單的 API、減少冗余、改進(jìn)文檔與示例。因此,TensorFlow 2.0 在設(shè)計(jì)上注重以下三點(diǎn):簡單、強(qiáng)大、可擴(kuò)展。 在簡單方面,TensorFlow 2.0 提供更簡化的 API、注重 Keras、結(jié)合了 Eager Execution。通過擴(kuò)展到 exaflops 級別,TensorFlow2.0 變得更加強(qiáng)大,在同樣的穩(wěn)健性與性能下效率會更高。 TensorFlow 在過去的開發(fā)中已經(jīng)構(gòu)建了非常多的模塊或組件,而 TensorFlow 2.0 則需要對整體工作流組件做極大的優(yōu)化。下圖展示了 TensorFlow 的高層設(shè)計(jì)架構(gòu),這些組件和特征將被打包成一個(gè)綜合平臺,從而支持從訓(xùn)練到部署的整個(gè)機(jī)器學(xué)習(xí)工作流程。 下圖展示了 Tensorflow2.0 的強(qiáng)大 API 組件在整個(gè)工作流的適配,其中數(shù)據(jù)導(dǎo)入與處理可調(diào)用 tf.data、模型構(gòu)建可以用便捷高效的 Keras 與 Estimators、訓(xùn)練又會有 Eager 模式和 Autograph 新特性。最后保存的模型還能通過不同的模塊部署到云、移動端和網(wǎng)頁等等。 基于這些整體設(shè)計(jì),TF 2.0 也在快速成長。工程總監(jiān) Rajat Monga 隨后宣布,TensorFlow 2.0 Alpha 版今天發(fā)布,RC 版將于今年第二季度發(fā)布。 TensorFlow 2.0 Alpha 版新特性 TensorFlow 2.0 的特性主要體現(xiàn)在三方面,即易用性、簡潔性與靈活性。其中易用性主要體現(xiàn)在使用 tf.keras 作為高級 API,且將 Eager execution 作為默認(rèn)模式。如下所示在 2.0 中定義加法運(yùn)算不再返回節(jié)點(diǎn)屬性,而是直接返回運(yùn)算值: TensorFlow 一直有很多龐大而冗余的 API 函數(shù),尤其是 contrib 模塊里。但在 TF 2.0 中,開發(fā)團(tuán)隊(duì)做了大量工作來移除重復(fù)的 API 函數(shù),并重新組織它們。 此外,tf.contrib 將從核心 TensorFlow 存儲庫和構(gòu)建過程中移除。TensorFlow 的 contrib 模塊已經(jīng)超出了單個(gè)存儲庫可以維護(hù)和支持的范圍。較大的項(xiàng)目最好單獨(dú)維護(hù),而較小的擴(kuò)展將逐漸移至核心 TensorFlow 代碼。 盡管 TF 2.0 更關(guān)注使用便捷性,但這并不表明會犧牲靈活性。它同樣提供完全的底層 API,同樣能通過 tf.raw_ops 訪問內(nèi)部 OP。 此外,這些特性聽起來很美好,但 TF 2.0 的向下兼容性同樣十分重要。TF 2.0 將增加兼容性模塊 tf.compat.v1,以及提供升級 1.X 代碼的腳本。在我們使用 pip 安裝 TensorFlow 2.0 時(shí),系統(tǒng)會自動添加 tf_upgrade_v2 腳本,它可將現(xiàn)有的 TensorFlow Python 代碼轉(zhuǎn)換為 TensorFlow 2.0 代碼。 如下所示在升級代碼時(shí)會自動將 1.X 的 API 換為新的 API,如果 TF2.0 沒有對等的 API,那么還能調(diào)用 tf.compat.v1 使用 1.X 的兼容 OP。因?yàn)?tensorflow.compat.v1 在 TensorFlow 2.x 的時(shí)間線內(nèi)將長期得到維護(hù),我們用 TensorFlow 1.x 編寫的代碼也能保持功能。 Eager execution 可能 TensorFlow 2.0 最明顯的改變就是將 Eager execution 作為默認(rèn)優(yōu)先模式。這表明任何運(yùn)算在調(diào)用后就會立即運(yùn)行,我們不再需要預(yù)先定義靜態(tài)圖,再通過「tf.Session.run()」執(zhí)行圖的各個(gè)部分。 a = tf.constant([1, 2]) 此外,Eager execution 還有一個(gè)很重要的新特性,即 tf.function 注釋可以將 Python 程序轉(zhuǎn)換成 TensorFlow 計(jì)算圖,所有我們熟悉的 Python 控制流和內(nèi)置函數(shù)等都可以轉(zhuǎn)化為 TensorFlow 計(jì)算圖。 這個(gè)過程保留了 TensorFlow1.x 基于靜態(tài)計(jì)算圖執(zhí)行的所有優(yōu)點(diǎn):性能優(yōu)化、遠(yuǎn)程執(zhí)行,以及序列化、導(dǎo)出和部署的能力,同時(shí)增加了用簡單 Python 表達(dá)程序的靈活性和易用性。因此總體而言,Eager execution 將是 2.0 的核心功能,它會使 TensorFlow 更容易學(xué)習(xí)和應(yīng)用。 TF 2.0 當(dāng)然是 Dev Summit 中的重頭戲,但經(jīng)過一年,很多模塊與功能都走向了成熟,其中就包含 TensorFlow.js。 TensorFlow.js 1.0 2018 年,谷歌發(fā)布了 TensorFlow.js,一個(gè)在瀏覽器、節(jié)點(diǎn)和其他平臺中使用 JS 建立、部署機(jī)器學(xué)習(xí)模型的庫。自發(fā)布以來,TensorFlow.js 被大量采用,截至目前該庫已被下載 30 萬次,Github 星標(biāo)數(shù)量超過 1 萬,項(xiàng)目貢獻(xiàn)者超過 100 個(gè)。 今日,TensorFlow.js 1.0 版本發(fā)布,在先前版本的基礎(chǔ)上做了許多改進(jìn),也添加了許多新特征。1.0 版本包含一個(gè)面向圖像、文本、語音等常見機(jī)器學(xué)習(xí)任務(wù)的現(xiàn)成模型庫。此外,TensorFlow.js 1.0 還添加了運(yùn)行 JS 的更多平臺,例如桌面 app、移動端本地的平臺等。在性能上,該版本也有極大的改進(jìn),例如相比于去年,在瀏覽器中 MobileNet 的推斷速度快了 8 倍。 TensorFlow.js 1.0 版本項(xiàng)目地址:https://github.com/tensorflow/tfjs/releases 從研究到產(chǎn)品、從服務(wù)器端到移動端,TensorFlow 已經(jīng)成熟為了一個(gè)全面的生態(tài)系統(tǒng)。 在 TF 2.0 和 TF.js 之外,現(xiàn)場還介紹了 TensorFlow 新網(wǎng)站,從網(wǎng)頁中我們也可以看到谷歌將 TensorFlow 定位為端到端的開源機(jī)器學(xué)習(xí)平臺,它添加了更多文檔、示例和工具。 不過尷尬的是,直播過程中,小編發(fā)現(xiàn) TensorFlow 新網(wǎng)站 404 了…… TensorFlow 家族新成員 TensorFlow Federated:針對分散式數(shù)據(jù) 此外,TensorFlow 還發(fā)布了開源框架 TensorFlow Federated(TFF),它適用于分散式數(shù)據(jù)(decentralized data)上執(zhí)行機(jī)器學(xué)習(xí)和其他計(jì)算。TFF 旨在促進(jìn)聯(lián)合學(xué)習(xí)(Federated Learning,F(xiàn)L)的開放性研究和實(shí)驗(yàn),聯(lián)合學(xué)習(xí)是一種機(jī)器學(xué)習(xí)方法,可在多個(gè)客戶端上訓(xùn)練共享的全局模型,同時(shí)在本地保存訓(xùn)練數(shù)據(jù)。例如,F(xiàn)L 曾被用于訓(xùn)練手機(jī)鍵盤的預(yù)測模型,同時(shí)不將敏感輸入數(shù)據(jù)加載到服務(wù)器上。
TensorFlow Federated 讓開發(fā)者能夠展示和模擬聯(lián)合學(xué)習(xí)系統(tǒng)。如圖所示,每部手機(jī)在本地訓(xùn)練模型 (A)。它們的更新會匯總到一起 (B),形成一個(gè)改進(jìn)后的共享模型 (C)。 TFF 可使開發(fā)者在自己的模型和數(shù)據(jù)上模擬使用聯(lián)邦學(xué)習(xí)算法,促進(jìn)對新算法的實(shí)驗(yàn)。TFF 提供的構(gòu)建塊還可用于實(shí)現(xiàn)非學(xué)習(xí)計(jì)算。TFF 的接口由兩個(gè)層組成:Federated Learning (FL) API 和 Federated Core (FC) API。FC API 支持針對分散式數(shù)據(jù)集的各種計(jì)算的表達(dá)。
TensorFlow Privacy 開源庫 TensorFlow Privacy 是 TensorFlow 今天發(fā)布的另一個(gè)開源庫,不僅能讓開發(fā)者在保護(hù)隱私的情況下訓(xùn)練機(jī)器學(xué)習(xí)模型,也能讓研究者在保護(hù)隱私的情況下推進(jìn)機(jī)器學(xué)習(xí)的前沿研究。
現(xiàn)代機(jī)器學(xué)習(xí)越來越多地被應(yīng)用到新技術(shù)和用戶體驗(yàn)中,很多應(yīng)用需要基于敏感數(shù)據(jù)(如個(gè)人照片或郵件)來訓(xùn)練。完美情況下,訓(xùn)練模型的參數(shù)應(yīng)該編碼一般模式,而不是特定訓(xùn)練樣本的事實(shí)。差分隱私(differential privacy)技術(shù)可用于保護(hù)隱私數(shù)據(jù),當(dāng)模型基于用戶數(shù)據(jù)訓(xùn)練時(shí),差分隱私技術(shù)可以提供強(qiáng)數(shù)學(xué)保證,確保模型不學(xué)習(xí)或記住任意用戶的數(shù)據(jù)細(xì)節(jié)。對于深度學(xué)習(xí)來說,更要添加額外的保障。 谷歌近年來開展機(jī)器學(xué)習(xí)差分隱私方面的基礎(chǔ)研究,以及開發(fā)實(shí)用的差分隱私機(jī)制。今天,谷歌正式發(fā)布 TensorFlow Privacy。它不要求用戶具備隱私及其底層機(jī)制方面的專業(yè)知識,使用標(biāo)準(zhǔn) TensorFlow 框架的用戶在使用 TensorFlow Privacy 時(shí)也無需對模型架構(gòu)、訓(xùn)練步驟做任何更改,只需簡單地修改幾行代碼,并調(diào)整與隱私相關(guān)的超參數(shù)。 Coral 開發(fā)板和 USB 加速器 比較有趣的是,今日谷歌還發(fā)布兩個(gè)全新的硬件產(chǎn)品:Coral 開發(fā)板和 USB 加速器。 首先介紹下 Coral。Coral 是一個(gè)構(gòu)建智能設(shè)備的平臺,它提供完全本地的 AI 工具箱,包括硬件組件、軟件工具,以及幫助你創(chuàng)造、訓(xùn)練、運(yùn)行神經(jīng)網(wǎng)絡(luò)的模塊。 Coral 的首個(gè)硬件組件就是之前谷歌發(fā)布的 ASIC——Edge TPU,它能為低功率設(shè)備提供極高的機(jī)器學(xué)習(xí)推理性能。例如,它能以高能效方式在 100+ 的 fps 下執(zhí)行 MobileNet v2 這樣的視覺模型。 Coral 攝像模塊、開發(fā)板和 USB 加速器。 作為全新的開發(fā)產(chǎn)品,Coral 開發(fā)板是個(gè)完全集成的系統(tǒng),它被設(shè)計(jì)成構(gòu)建在載板上的系統(tǒng)模塊(SoM)。SoM 把強(qiáng)大的 NXP iMX8M SoC 與谷歌的 Edge TPU 協(xié)處理器(包括 Wi-Fi、藍(lán)牙、RAM 和 eMMC 存儲)融合在了一起。為了讓計(jì)算機(jī)視覺應(yīng)用原型更簡單,谷歌還提供了一個(gè)攝像頭連接開發(fā)板與 MIPI 接口。 為了把 Edge TPU 加入到已有的設(shè)計(jì)中,Coral USB 加速器允許通過 USB2.0、3.0 接口輕松接入到任何 Linux 系統(tǒng)中,之后谷歌還會添加 PCIe 版本。 價(jià)格方面,Coral 開發(fā)板售價(jià)為 149.99 美元,Coral USB 加速器售價(jià)為 74.99 美元。 小結(jié) 以上就是一年一度的谷歌 TensorFlow 開發(fā)者大會上的全新發(fā)布了??傮w而言,我們看到了 TensorFlow 在設(shè)計(jì)上的重大革新。雖然今日沒能看到 TensorFlow 2.0 的正式發(fā)布,但這些新特征是否讓你對它有所期待呢? 最后提一句,小編中意 PyTorch(差點(diǎn)與另一小編打起來)。 來自另一小編的反對 參考文章: https:///tensorflow/introducing-tensorflow-privacy-learning-with-differential-privacy-for-training-data-b143c5e801b6 https:///tensorflow/test-drive-tensorflow-2-0-alpha-b6dd1e522b01 https://developers./2019/03/introducing-coral-our-platform-for.html |
|