TensorFlow2.0終于問(wèn)世,Alpha版可以搶先體驗(yàn)。新版本主打簡(jiǎn)單易用可擴(kuò)展,大大簡(jiǎn)化API,最后,連logo也改了。
TensorFlow 2.0終于來(lái)了!
今天凌晨,谷歌在加州舉辦TensorFlow開(kāi)發(fā)者峰會(huì)(TensorFlow Dev Summit),正式發(fā)布2.0版本。
這場(chǎng)發(fā)布會(huì)有幾大亮點(diǎn):
TensorFlow 2.0Alpha版發(fā)布,用戶(hù)現(xiàn)在可以搶先體驗(yàn);
2.0版本具有簡(jiǎn)易性、更清晰、擴(kuò)展性三大特征,大大簡(jiǎn)化API;
提高了TensorFlow Lite和TensorFlow.js部署模型的能力;
發(fā)布會(huì)還把TensorFlow目前的家底透露了一遍:目前TF在全球已經(jīng)有超過(guò)4100萬(wàn)的下載次數(shù),社區(qū)有超過(guò)1800多個(gè)貢獻(xiàn)者。

盡管官方?jīng)]有透露中國(guó)社區(qū)的情況,但是發(fā)布會(huì)現(xiàn)場(chǎng)展示一張全球地圖,根據(jù)圖中的用戶(hù)分布情況可以推測(cè),目前TF中國(guó)應(yīng)該是僅次于美國(guó)和歐洲的第三大地區(qū)。
另外一個(gè)值得注意的變化是,從2.0開(kāi)始,TensorFlow的logo也不一樣,從類(lèi)似積木的形狀變成了兩個(gè)分開(kāi)的字母“T”和“F”,或許也意味著減少冗余,看上去更簡(jiǎn)潔。
簡(jiǎn)單易用可擴(kuò)展,TF2.0迎來(lái)新架構(gòu)
TensorFlow 已經(jīng)發(fā)展為世界上最受歡迎和被廣泛采用的機(jī)器學(xué)習(xí)平臺(tái)之一,自2015年問(wèn)世,并在去年11月迎來(lái)三周歲生日。

之前開(kāi)發(fā)者反饋,希望TensorFlow能夠簡(jiǎn)化API、減少冗余并改進(jìn)文檔和示例。這次2.0發(fā)布,聽(tīng)取了開(kāi)發(fā)者的建議,因此新版本有以下三大特點(diǎn):簡(jiǎn)單、強(qiáng)大、可拓展。

基于這三大特點(diǎn),TensorFlow 2.0也有新架構(gòu),如下面的簡(jiǎn)化概念圖所示:

TensorFlow 2.0 將專(zhuān)注于簡(jiǎn)單性和易用性,具有以下更新:
使用 Keras 和 eager execution,輕松構(gòu)建模型
在任意平臺(tái)上實(shí)現(xiàn)生產(chǎn)環(huán)境的穩(wěn)健模型部署
為研究提供強(qiáng)大的實(shí)驗(yàn)工具
通過(guò)清理廢棄的 API 和減少重復(fù)來(lái)簡(jiǎn)化 API
下面詳細(xì)介紹TF2.0的新特性。
易用至上,TensorFlow 2.0 Alpha發(fā)布
這次TensorFlow的一些列更新,重點(diǎn)就在于:讓你使用得更加簡(jiǎn)單。
TensorFlow 2.0發(fā)布以后,訓(xùn)練的流程將變得十分簡(jiǎn)潔:

主要流程就是:數(shù)據(jù)集成和轉(zhuǎn)換→模型構(gòu)建→訓(xùn)練→保存模型。
當(dāng)然,TensorFlow也秉承著“哪兒都可以部署”的原則,使其在應(yīng)用方面更加靈活和方便:

下面是TensorFlow2.0在這次更新中的幾大亮點(diǎn):

TensorFlow Alpha
更易用:諸如tf.keras等高級(jí)API將更易于使用;并且Eager execution將成為默認(rèn)設(shè)置。例如:
>>>tf.add(2,3)
更清晰:刪除了重復(fù)的功能;不同API的調(diào)用語(yǔ)法更加一致、直觀(guān);兼容性更加完善。
更靈活:提供完整的低級(jí)API;可在tf.raw_ops中訪(fǎng)問(wèn)內(nèi)部操作;提供變量、checkpoint和層的可繼承接口。
當(dāng)然,TensorFlow 2.0 Alpha版本從安裝上便十分的簡(jiǎn)單,僅需一句話(huà):
pip install -U --pre tensorflow
而Eager execution 與 “@tf.function”作為核心升級(jí)重點(diǎn),接下將會(huì)對(duì)其如何協(xié)同工作進(jìn)行做詳細(xì)介紹。
其中一個(gè)最明顯的變化是,TensorFlow 是 “Eager 優(yōu)先”,這意味著 op 在調(diào)用后會(huì)立即運(yùn)行。在 TensorFlow 1.x 中,使用者可能會(huì)先構(gòu)圖,然后通過(guò) “tf.Session.run()” 執(zhí)行圖的各個(gè)部分。
TensorFlow 2.0 從根本上簡(jiǎn)化了 TensorFlow 的使用 — 同樣出色的 op,現(xiàn)在卻更易理解和使用。
a=tf.constant([1,2])b = tf.constant([3, 4])print(a+b)# returns: tf.Tensor([4 6], shape=(2,), dtype=int32)
TensorFlow 2.0 使用 Keras 作為開(kāi)發(fā)者的核心體驗(yàn)。在 2.0 中,可以如常使用 Keras,利用 Sequential API 構(gòu)建模型,然后使用 “compile” 和 “fit”。tensorflow.org 中所有這些熟悉的 “tf.keras” 示例均可在 2.0 中實(shí)現(xiàn) “開(kāi)箱即用”。
Keras 的 “fit()” 適用于很多情況,但是,需要更高靈活性的開(kāi)發(fā)者現(xiàn)在可以有更多選擇。來(lái)看一下如下示例中以 TensorFlow 2.0 風(fēng)格編寫(xiě)的自定義訓(xùn)練循環(huán):
deftrain_one_step(model,optimizer,x,y):withtf.GradientTape()astape:logits=model(x)loss=compute_loss(y,logits)grads=tape.gradient(loss,model.trainable_variables)optimizer.apply_gradients(zip(grads,model.trainable_variables))compute_accuracy(y,logits)returnlossdeftrain(model,optimizer):train_ds=mnist_dataset()step=0loss=0.0forx,yintrain_ds:step+=1loss=train_one_step(model,optimizer,x,y)iftf.equal(step%10,0):tf.print('Step',step,':loss',loss,';accuracy',compute_accuracy.result())return step, loss, accuracy
此示例采用 Autograd 風(fēng)格的 GradientTape,并通過(guò)優(yōu)化器手動(dòng)應(yīng)用你的梯度。在編寫(xiě)具有復(fù)雜內(nèi)部運(yùn)作的自定義訓(xùn)練循環(huán)(譬如在強(qiáng)化學(xué)習(xí)中)或進(jìn)行研究(輕松幫您落實(shí)提高優(yōu)化器效率的新想法)時(shí),這特別有幫助。
“Eager execution” 還有助于調(diào)試和監(jiān)控運(yùn)行中的代碼,可以使用 Python 調(diào)試程序檢查變量、層及梯度等對(duì)象。在訓(xùn)練循環(huán)中,使用 “if”、“for” 和 “print()” 等 Python 語(yǔ)句。
一旦代碼運(yùn)行正常,便會(huì)想要獲得圖表優(yōu)化和效率。為此,可以利用裝飾器 “@tf.function” 封裝 “train”。“tf.function” 中內(nèi)置 Autograph,因此無(wú)需任何特殊操作便可獲取以用圖表效率運(yùn)行的 “if” 或 “for” 子句。
@tf.functiondeftrain(model,optimizer):train_ds=mnist_dataset()step=0loss=0accuracy=0forx,yintrain_ds:#如上所述,包括“if”和“print()”return step
這段代碼并不會(huì)受注釋影響,但會(huì)將其編譯到可在 GPU、TPU 上輕松運(yùn)行的圖表中,或?qū)⑵浔4嬷?“SavedModel” 留待后用。
針對(duì)這對(duì)代碼,尤為有趣之處在于,通過(guò)在 “@tf.function” 中封裝 “train()”,“train_one_step()”、“compute_loss()” 和 “compute_accuracy()” 也會(huì)自動(dòng)進(jìn)行轉(zhuǎn)換。也可選擇在 “@tf.function” 中僅封裝部分運(yùn)算,從而獲得所需行為。
此外,TensorFlow 2.0 完全支持 Estimator。
tensorflow.org/alpha 鏈接
https://www.tensorflow.org/alpha
高級(jí)API變化
TensorFlow 2.0 在API上可謂是下足了功夫,在這個(gè)版本中,高級(jí)API將十分“易于擴(kuò)展”且“擴(kuò)展地很容易”:

例如,對(duì)tf.keras.optimizer tf.keras.layers tf.keras.loss等一些列高級(jí)API都做了“易用性”的優(yōu)化。例如:

值得注意的是,尤其是對(duì)諸如RNN layers等神經(jīng)網(wǎng)絡(luò)的高級(jí)API做了優(yōu)化,用戶(hù)還可以對(duì)其自定義。
可謂是開(kāi)發(fā)者福音。
升級(jí)
TensorFlow 2.0 將包含許多 API 變更,例如,對(duì)參數(shù)進(jìn)行重新排序、重新命名符號(hào)和更改參數(shù)的默認(rèn)值。手動(dòng)執(zhí)行所有這些變更不僅枯燥乏味,而且容易出錯(cuò)。

為簡(jiǎn)化變更過(guò)程并讓開(kāi)發(fā)者盡可能順暢地過(guò)渡到 TensorFlow 2.0,TensorFlow 工程團(tuán)隊(duì)創(chuàng)建了實(shí)用程序tf_upgrade_v2,可將舊代碼轉(zhuǎn)換至新 API。
tf_upgrade_v2 鏈接
https://github.com/tensorflow/docs/blob/master/site/en/r2/guide/upgrade.md
TensorFlow.js v1.0
TensorFlow for Javascript已經(jīng)有300,000次下載和100個(gè)貢獻(xiàn)者。 今天TensorFlow.js的1.0版本包括性能改進(jìn)。

例如瀏覽器中MobileNet v1推理的9倍提升。 還有針對(duì)Web開(kāi)發(fā)人員的新現(xiàn)成模型和更廣泛的平臺(tái)支持。
TensorFlow Lite:超20億移動(dòng)設(shè)備部署使用
TensorFlow Lite是一個(gè)為移動(dòng)和嵌入式設(shè)備打造的輕量級(jí)、跨平臺(tái)解決方案。
這樣一個(gè)輕量級(jí)的解決方案很有必要,因?yàn)闄C(jī)器學(xué)習(xí)越來(lái)越多地轉(zhuǎn)移到終端設(shè)備,如手機(jī)、汽車(chē)、可穿戴設(shè)備等。在這樣的設(shè)備上使用ML有很多限制,如有限的計(jì)算能力、有限的內(nèi)存、電池限制等,TensorFlow Lite可以很大程度上解決這些限制。

TensorFlow Lite的用例
一個(gè)驚人的事實(shí):已經(jīng)有20億移動(dòng)設(shè)備部署使用了TensorFlow Lite。
說(shuō)明,TensorFlow Lite有很多國(guó)內(nèi)外客戶(hù)……

網(wǎng)易有道技術(shù)總監(jiān)林會(huì)杰作為“為什么選擇TensorFlow Lite”的代表,受邀上臺(tái)介紹了有道翻譯應(yīng)用TensorFlow Lite取得的成果。

TensorFlow Lite四大主題:

可用性(Usability):拿來(lái)即用
性能(Performance):模型執(zhí)行速度更快
優(yōu)化(Optimization):讓你的模型更小、更快
文檔(Documentation):有很多資源
可用性:部署簡(jiǎn)單,拿來(lái)即用

保存模型,轉(zhuǎn)換到TF Lite,就是這么簡(jiǎn)單。

新的TensorFlow Select功能讓模型轉(zhuǎn)換到TensorFlow Lite更簡(jiǎn)單。
性能:在可用的硬件條件下,讓模型執(zhí)行盡可能快

有多快呢?訓(xùn)練MobileNet v1,CPU、GPU和Edge TPU下推理速度分別提升了1.9倍、7.7倍和62倍!
優(yōu)化:讓模型更小、更快


優(yōu)化表現(xiàn):


文檔:

One More Thing:
TensorFlow Lite工程師Pete Warden上臺(tái)介紹了一個(gè)非常酷的“小玩意”:
是一個(gè)名為珊瑚(Coral)的小型開(kāi)發(fā)板,一款可以構(gòu)建和試驗(yàn)AI設(shè)備的硬件。
它的原理類(lèi)似樹(shù)莓派,但使用了定制的Google處理器,專(zhuān)為AI設(shè)計(jì)。沒(méi)錯(cuò),在這個(gè)小小的板上,你可以運(yùn)行TensorFlow。
Warden展示了一個(gè)小demo:
說(shuō)一個(gè)特定的單詞,Coral板上黃色的小燈會(huì)應(yīng)聲亮起來(lái)。
模型只有20KB大小,運(yùn)行使用不到100KB的RAM和80KB Flash。
谷歌表示:“Coral提供了一個(gè)完整的本地AI工具包,可以輕松地將你的想法從原型變成到產(chǎn)品。”
像樹(shù)莓派一樣,可以期待更多使用Coral開(kāi)發(fā)的有趣的事情。
售價(jià)149.99美元,傳送門(mén):
https://coral.withgoogle.com/products/
-
谷歌
+關(guān)注
關(guān)注
27文章
6254瀏覽量
111404 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8553瀏覽量
136953 -
tensorflow
+關(guān)注
關(guān)注
13文章
334瀏覽量
62185
原文標(biāo)題:TensorFlow 2.0 新鮮出爐!新版本,新架構(gòu),新特性
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Alpha Wire 工業(yè)電纜材料性能與極端條件應(yīng)用解析
二階濾波器C代碼的實(shí)現(xiàn)
如何在TensorFlow Lite Micro中添加自定義操作符(1)
【上海晶珩睿莓1開(kāi)發(fā)板試用體驗(yàn)】TensorFlow-Lite物體歸類(lèi)(classify)
ALPHA2000-3015G-DB3電路圖資料
ALPHA2000-3015G-DB2電路圖資料
ALPHA2000-3015G-DB1電路圖資料
2.0-6.0 GHz GaAs SPDT 開(kāi)關(guān) skyworksinc
無(wú)法將Tensorflow Lite模型轉(zhuǎn)換為OpenVINO?格式怎么處理?
國(guó)星光電InfoComm 2025亮點(diǎn)搶先看
請(qǐng)問(wèn)在Windows10下可以安裝USB2.0驅(qū)動(dòng)么?
用樹(shù)莓派搞深度學(xué)習(xí)?TensorFlow啟動(dòng)!
TensorFlow2.0終于問(wèn)世,Alpha版可以搶先體驗(yàn)
評(píng)論