TensorFlow的新生!
點擊“小詹學Python”,選擇“置頂”公眾號
重磅干貨,第一時間送達
本文轉(zhuǎn)載自機器之心
如果你是 AI 鐵粉,但恰好沒看到這個重大新聞,這可能就像在地震來臨之際打了個盹。一切都將改變。
這是什么?TensorFlow 的 logo?還是回答真/假判斷題的字母?
去年我寫了 9 件關于 TensorFlow 你需要了解的事。但是你需要明確知道的一件事是:TensorFlow 2.0 到來了!
這是一次顛覆性的改造。TensorFlow 2.0 的到來將對每個行業(yè)造成巨大的連鎖反應,等著瞧吧。如果你是 2019 年剛開始用 TF 的新手,那你就特別幸運了,因為你選擇了最好的時間進入 AI 的世界(如果你的舊教程中有「session」一詞,你可能想從頭開始)。
簡而言之:TensorFlow 已經(jīng)覆蓋了 Keras!請站穩(wěn)、扶好。
扎心的體驗
我對很多人熱愛 TensorFlow1.x 表示懷疑。這像是人工智能的工業(yè)車床,它對用戶友好。但充其量,你可能只因為它能完成令人難以置信的 AI 任務而對它心懷感激而已。
如果你說 TensorFlow 1.x 很容易上手,那你可能會遭到別人的白眼。它陡峭的學習曲線使普通用戶望而卻步,而掌握了它就像你在失去腳趾的情況下登頂了珠峰。有趣嗎?不。
你不是一個人——每個人對 TensorFlow 1.x 教程的感覺都是這樣的……
TensorFlow 的核心優(yōu)勢在于性能。它的設計是為了將模型能從研究遷移到大規(guī)模生產(chǎn)中,但是 TF 1.x 讓你心力交瘁。堅持下去,你就能夠加入 ML 從業(yè)者的行列,他們用它做很多不可思議的事情,比如尋找新的行星、探索先進的醫(yī)療手段。
然而,如此強大的工具掌握在如此少的人手中,真是可惜······不過現(xiàn)在,情況不同了。
不要擔心張量(tensor)是什么。以前它被稱作(廣義)矩陣。TensorFlow 這個名稱是對 TF 非常擅長執(zhí)行涉及多維數(shù)組(呃,矩陣)的分布式計算這一事實的肯定,這在 AI 領域是經(jīng)常出現(xiàn)的。(圖源:http://karlstratos.com/drawings/drawings.html)
可愛又迷人的角色——Keras
我們已經(jīng)介紹了扎心的「仙人球」,現(xiàn)在來談談你真正想要擁抱的東西。我在工作的地方無意中聽到一句話:「我想我真的很喜歡 Keras。」
Keras 是一個逐層構建模型的規(guī)范,它與多個機器學習框架一起工作(所以它不是 TF 的工具),但你可能知道從 TensorFlow 中可以訪問其高級 API tf.keras。
Keras 由純 Python 編寫而成,它總是以人為本——設計靈活、簡單易學。
魚和熊掌能兼得嗎?
為什么我們必須在 Keras 的簡單操作和傳統(tǒng) TensorFlow 的強大性能之間做出抉擇?怎么才能兼得呢?
魚和熊掌可以兼得——這就是 TensorFlow 2.0。
圖中是 TensorFlow 2.0。網(wǎng)址:https://www.tensorflow.org/overview,你可以在該網(wǎng)頁隨意嘗試這些橙色按鈕。
易用性革命
展望未來,Keras 將成為 TensorFlow 的高級 API,它已經(jīng)經(jīng)過了擴展,因此你可以直接從 tf.keras 使用 TensorFlow 的所有高級功能。
在新版本中,所有你最討厭的 TensorFlow1.x 特性都沒有了。只是為了將兩個數(shù)字加在一起,就必須采用「暗黑」操作?再見。TensorFlow Sessions?再見。用一百萬種方法做同樣的事情?再見。切換硬件或規(guī)模就要重寫代碼?再見。要寫一大堆的樣板文件?再見。可怕的無法執(zhí)行的錯誤信息?再見。陡峭的學習曲線?再見。
TensorFlow 已成為過去時,TensorFlow 2.0 萬歲!
你覺得會有大陷阱是嗎?性能會變得糟糕?再猜!我們不會放棄性能。
TensorFlow 現(xiàn)在很可愛,這是一個游戲規(guī)則改變者,因為它意味著我們這個時代最強大的工具之一撤掉了它的高墻。各行各業(yè)的技術愛好者都有了參與其中的權利,因為新版本的開放讓研究人員不再頭疼,也讓那些使用以前版本而遭受「痛苦經(jīng)歷」的人能再度積極參與其中。
我們這個時代最強大的工具之一撤掉了它的高墻。
TensorFlow 2.0 歡迎所有人。
令人滿意的 Eager
在 TensorFlow 2.0 中,eager execution 是默認模式。甚至在 eager context 中,你也可以利用圖,使調(diào)試和原型設計變得簡單,而 TensorFlow 運行時則負責底層性能和擴展。
TensorFlow 1.x(聲明式編程)中的糾纏圖讓許多人摸不著頭腦,但現(xiàn)在,eager execution(命令式編程)讓大家擺脫了這個噩夢。如果你之前沒學習過這部分,那就更好了。TF 2.0 對每個人來說都是一個新的開始。
簡單到一個就足夠
許多 API 在 TensorFlow Keras 下得到了整合,所以現(xiàn)在你更容易知道什么時候應該使用什么。例如,現(xiàn)在只需要使用一組優(yōu)化器和一組度量標準。需要設置多少層?你猜到了!一個!這就是 Keras 的風格。
事實上,整個工具生態(tài)系統(tǒng)得到了一次大掃除,從數(shù)據(jù)處理流程到簡單的模型導出,再到 TensorBoard 與 Keras 的集成,現(xiàn)在只要一行即可實現(xiàn)!
還有一些很棒的工具可以切換和優(yōu)化分布策略,從而獲得驚人的擴展效率,同時又不會失去 Keras 本身的便利性。
這些分布策略都很棒,不是嗎?
問題
如果性能不是問題,那一定還有別的陷阱對吧?
事實上,到目前為止,問題就是用戶等待了太久。TensorFlow 在開發(fā)一個友好的版本時,要求用戶有相當多的耐心。這不是故意刁難用戶。開發(fā)深度學習工具是一個新的領域,我們一直在沿著這個方向前進。彎路是不可避免的,但我們在此過程中學到了很多東西。
TensorFlow 社區(qū)投入了大量的精力來創(chuàng)造這份奇跡,然后再次付出更多的努力打磨這顆最好的寶石,同時打磨掉不好的設計。這個計劃不會強迫你永遠使用未磨好的「原石」,但也許你已經(jīng)習慣了這種不舒服,你沒有意識到這是暫時的。感謝你的耐心等待!
回報就是你所欣賞的關于 TensorFlow 1.x 的一切都還在,它們在一致的 API 下,且刪除了大量的重復功能,因此使用起來更清晰。即使是錯誤信息,也清理得簡明扼要、易于理解、易于操作。它的性能仍然強大!
最重要的事情
hater 可能會說 v2.0 中的大部分特性都可以在 v1.x 中拼湊出來,只要你搜索得足夠多,所以有什么可大驚小怪的呢?好吧,不是每個人都想花費時間在沙里淘金。改造和清理工作值得大家的掌聲。但這不是最重要的事情。
不容錯過的一點是:TensorFlow 剛剛宣布了對易用性的關注,這一點不容妥協(xié)。
AI 可自動執(zhí)行任務,你無需再想相關的說明。它可以自動化描述不出的內(nèi)容。民主化意味著大規(guī)模的人工智能將不再是少數(shù)精英的專屬了。
想象一下未來「我知道如何用 Python 開發(fā)東西」和「我知道如何用 AI 開發(fā)東西」同樣司空見慣,這幾乎可以用「顛覆」二字來形容。
遷移
我們知道升級到新版本是一項艱苦的工作,尤其是當這些變化如此巨大時。如果你準備將代碼庫遷移至 2.0,那么你并不孤單,Google 將執(zhí)行同樣的操作,谷歌擁有世界上最大的代碼庫。隨著我們的深入,我們將分享遷移指南來幫助大家。
我們提供了很好的工具來簡化遷移。
如果你依賴于特定的功能,那么除了 contrib 其他都沒什么問題,所有 TF 1.x 的功能都將存在于 compat.v1 兼容模塊中。我們還提供一個腳本(http://bit.ly/tfupgrade),它會自動更新代碼,使其在 TensorFlow 2.0 上運行。更多信息參見以下視頻:
如果你希望深入了解 TF 2.0 和如何處理代碼片段,那么這個視頻是一個很好的資源。
對小白來說
TF 2.0 是初學者的天堂,所以對于那些一直期待看著菜鳥們遭遇過來人痛苦的人來說,這不會發(fā)生了。
如果你希望使用 TensorFlow 來欺負新員工,你可能需要「另辟蹊徑」了。
待在場外可能是明智的選擇,因為現(xiàn)在才是入場的最佳時機。2019 年 3 月,TensorFlow 2.0 Alpha 版本已經(jīng)可用,所以現(xiàn)在學習它可以讓你及時準備好迎接下個季度發(fā)布的完整版本。
隨著 TF 2.0 的大量變化,你不會成為當初想象的那種初學者。比賽場地變得平坦,比賽變得更加輕松,而且有一個座位專門為你而留。歡迎!我很高興你終于到了這里,我希望你和我一樣對這個新世界感到興奮。
加入吧!
查看重新設計的 tensorflow.org(http://bit.ly/tfdotorg),獲取教程、示例、文檔和工具,來幫助入門……或者直接使用以下命令:
詳細說明參見:http://bit.ly/tfalpha。
原文鏈接:https://hackernoon.com/tensorflow-is-dead-long-live-tensorflow-49d3e975cf04?sk=37e6842c552284444f12c71b871d3640
推薦閱讀
Python 中實用卻不常見的小技巧!
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結(jié)
以上是生活随笔為你收集整理的TensorFlow的新生!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 中实用却不常见的小技巧!
- 下一篇: 你还在用Python做数据分析么?