TensorFlow 2.0 帶來了大量改變。谷歌工程師 Cassie Kozyrkov 表示:之前的 TensorFlow 已死,而新版 TensorFlow 使它獲得重生。

如果你是 AI 鐵粉,但恰好沒看到這個重大新聞,這可能就像在地震來臨之際打了個盹。一切都將改變。

TensorFlow 2.0

這是什麼?TensorFlow 的 logo?還是回答真/假判斷題的字母?

去年我寫了 9 件關於 TensorFlow 你需要了解的事。但是你需要明確知道的一件事是:TensorFlow 2.0 到來了!一場新革命!歡迎來到 TensorFlow 2.0。

這是一次顛覆性的改造。TensorFlow 2.0 的到來將對每個行業造成巨大的連鎖反應,等着瞧吧。如果你是 2019 年剛開始用 TF 的新手,那你就特別幸運了,因為你選擇了最好的時間進入 AI 的世界(如果你的舊教程中有「session」一詞,你可能想從頭開始)。

簡而言之:TensorFlow 已經覆蓋了 Keras!請站穩、扶好。

扎心的體驗

我對很多人熱愛 TensorFlow1.x 表示懷疑。這像是人工智能的工業車床,它對用戶友好。但充其量,你可能只因為它能完成令人難以置信的 AI 任務而對它心懷感激而已。

扎心的體驗

如果你說 TensorFlow 1.x 很容易上手,那你可能會遭到別人的白眼。它陡峭的學習曲線使普通用戶望而卻步,而掌握了它就像你在失去腳趾的情況下登頂了珠峰。有趣嗎?不。

你不是一個人——每個人對 TensorFlow 1.x 教程的感覺都是這樣的……

你不是一個人——每個人對 TensorFlow 1.x 教程的感覺都是這樣的……

TensorFlow 的核心優勢在於性能。它的設計是為了將模型能從研究遷移到大規模生產中,但是 TF 1.x 讓你心力交瘁。堅持下去,你就能夠加入 ML 從業者的行列,他們用它做很多不可思議的事情,比如尋找新的行星、探索先進的醫療手段。

然而,如此強大的工具掌握在如此少的人手中,真是可惜······不過現在,情況不同了。

不要擔心張量(tensor)是什麼。以前它被稱作(廣義)矩陣。TensorFlow 這個名稱是對 TF 非常擅長執行涉及多維數組(呃,矩陣)的分佈式計算這一事實的肯定,這在 AI 領域是經常出現的。(圖源:http://karlstratos.com/drawings/drawings.html)
不要擔心張量(tensor)是什麼。以前它被稱作(廣義)矩陣。TensorFlow 這個名稱是對 TF 非常擅長執行涉及多維數組(呃,矩陣)的分佈式計算這一事實的肯定,這在 AI 領域是經常出現的。(圖源:http://karlstratos.com/drawings/drawings.html)


可愛又迷人的角色——Keras

我們已經介紹了扎心的「仙人球」,現在來談談你真正想要擁抱的東西。我在工作的地方無意中聽到一句話:「我想我真的很喜歡 Keras。」

Keras 是一個逐層構建模型的規範,它與多個機器學習框架一起工作(所以它不是 TF 的工具),但你可能知道從 TensorFlow 中可以訪問其高級 API tf.keras。

Keras

Keras 由純 Python 編寫而成,它總是以人為本——設計靈活、簡單易學。

魚和熊掌能兼得嗎?

為什麼我們必須在 Keras 的簡單操作和傳統 TensorFlow 的強大性能之間做出抉擇?怎麼才能兼得呢?

魚和熊掌可以兼得——這就是 TensorFlow 2.0。

圖中是 TensorFlow 2.0。網址:https://www.tensorflow.org/overview,你可以在該網頁隨意嘗試這些橙色按鈕。
「我們認為你不需要在簡單的 API 和可擴展的 API 之間做出選擇。我們想要一個更高級的 API,帶你直接從 MNIST 到天上繁星。」——Karmel Allison,Google TensorFlow 工程負責人
圖中是 TensorFlow 2.0。網址:https://www.tensorflow.org/overview,你可以在該網頁隨意嘗試這些橙色按鈕。
「我們認為你不需要在簡單的 API 和可擴展的 API 之間做出選擇。我們想要一個更高級的 API,帶你直接從 MNIST 到天上繁星。」——Karmel Allison,Google TensorFlow 工程負責人

易用性革命

展望未來,Keras 將成為 TensorFlow 的高級 API,它已經經過了擴展,因此你可以直接從 tf.keras 使用 TensorFlow 的所有高級功能。所有 TensorFlow 都具備 Keras 的易用性,可在各種規模和各種硬件上使用。

Keras 將成為 TensorFlow 的高級 API

在新版本中,所有你最討厭的 TensorFlow1.x 特性都沒有了。只是為了將兩個數字加在一起,就必須採用「暗黑」操作?再見。TensorFlow Sessions?再見。用一百萬種方法做同樣的事情?再見。切換硬件或規模就要重寫代碼?再見。要寫一大堆的樣板文件?再見。可怕的無法執行的錯誤信息?再見。陡峭的學習曲線?再見。

TensorFlow 已成為過去時,TensorFlow 2.0 萬歲!

你覺得會有大陷阱是嗎?性能會變得糟糕?再猜!我們不會放棄性能。

TensorFlow 現在很可愛,這是一個遊戲規則改變者,因為它意味着我們這個時代最強大的工具之一撤掉了它的高牆。各行各業的技術愛好者都有了參與其中的權利,因為新版本的開放讓研究人員不再頭疼,也讓那些使用以前版本而遭受「痛苦經歷」的人能再度積极參与其中。

我們這個時代最強大的工具之一撤掉了它的高牆。

TensorFlow 2.0 歡迎所有人。

令人滿意的 Eager

在 TensorFlow 2.0 中,eager execution 是默認模式。甚至在 eager context 中,你也可以利用圖,使調試和原型設計變得簡單,而 TensorFlow 運行時則負責底層性能和擴展。

TensorFlow 1.x(聲明式編程)中的糾纏圖讓許多人摸不着頭腦,但現在,eager execution(命令式編程)讓大家擺脫了這個噩夢。如果你之前沒學習過這部分,那就更好了。TF 2.0 對每個人來說都是一個新的開始。

簡單到一個就足夠

許多 API 在 TensorFlow Keras 下得到了整合,所以現在你更容易知道什麼時候應該使用什麼。例如,現在只需要使用一組優化器和一組度量標準。需要設置多少層?你猜到了!一個!這就是 Keras 的風格。

事實上,整個工具生態系統得到了一次大掃除,從數據處理流程到簡單的模型導出,再到 TensorBoard 與 Keras 的集成,現在只要一行即可實現!

還有一些很棒的工具可以切換和優化分佈策略,從而獲得驚人的擴展效率,同時又不會失去 Keras 本身的便利性。

這些分佈策略都很棒,不是嗎?

問題

如果性能不是問題,那一定還有別的陷阱對吧?

事實上,到目前為止,問題就是用戶等待了太久。TensorFlow 在開發一個友好的版本時,要求用戶有相當多的耐心。這不是故意刁難用戶。開發深度學習工具是一個新的領域,我們一直在沿着這個方向前進。彎路是不可避免的,但我們在此過程中學到了很多東西。這不是故意刁難用戶。深度學習是一個未知的領域。

TensorFlow 社區投入了大量的精力來創造這份奇蹟,然後再次付出更多的努力打磨這顆最好的寶石,同時打磨掉不好的設計。這個計劃不會強迫你永遠使用未磨好的「原石」,但也許你已經習慣了這種不舒服,你沒有意識到這是暫時的。感謝你的耐心等待!我們不會放棄性能!

回報就是你所欣賞的關於 TensorFlow 1.x 的一切都還在,它們在一致的 API 下,且刪除了大量的重複功能,因此使用起來更清晰。即使是錯誤信息,也清理得簡明扼要、易於理解、易於操作。它的性能仍然強大!

最重要的事情

hater 可能會說 v2.0 中的大部分特性都可以在 v1.x 中拼湊出來,只要你搜索得足夠多,所以有什麼可大驚小怪的呢?好吧,不是每個人都想花費時間在沙裡淘金。改造和清理工作值得大家的掌聲。但這不是最重要的事情。

不容錯過的一點是:TensorFlow 剛剛宣布了對易用性的關注,這一點不容妥協。這是人工智能民主化進程中前所未有的一步!

AI 可自動執行任務,你無需再想相關的說明。它可以自動化描述不出的內容。民主化意味着大規模的人工智能將不再是少數精英的專屬了。
現在任何人都可以引舵!

想像一下未來「我知道如何用 Python 開發東西」和「我知道如何用 AI 開發東西」同樣司空見慣,這幾乎可以用「顛覆」二字來形容。

遷移

我們知道升級到新版本是一項艱苦的工作,尤其是當這些變化如此巨大時。如果你準備將代碼庫遷移至 2.0,那麼你並不孤單,Google 將執行同樣的操作,谷歌擁有世界上最大的代碼庫。隨着我們的深入,我們將分享遷移指南來幫助大家。

我們提供了很好的工具來簡化遷移。

如果你依賴於特定的功能,那麼除了 contrib 其他都沒什麼問題,所有 TF 1.x 的功能都將存在於 compat.v1 兼容模塊中。我們還提供一個腳本(http://bit.ly/tfupgrade),它會自動更新代碼,使其在 TensorFlow 2.0 上運行。更多信息參見以下視頻:

如果你希望深入了解 TF 2.0 和如何處理代碼片段,那麼這個視頻是一個很好的資源。

對小白來說

TF 2.0 是初學者的天堂,所以對於那些一直期待看着菜鳥們遭遇過來人痛苦的人來說,這不會發生了。

如果你希望使用 TensorFlow 來欺負新員工,你可能需要「另闢蹊徑」了。如果你是 TensorFlow 初學者,你可能會在 AI 派對上遲到,但是很多人都會遲到。現在就是入場的最佳時間!

待在場外可能是明智的選擇,因為現在才是入場的最佳時機。2019 年 3 月,TensorFlow 2.0 Alpha 版本已經可用,所以現在學習它可以讓你及時準備好迎接下個季度發佈的完整版本。TF 2.0 是初學者的天堂。

隨着 TF 2.0 的大量變化,你不會成為當初想像的那種初學者。比賽場地變得平坦,比賽變得更加輕鬆,而且有一個座位專門為你而留。歡迎!我很高興你終於到了這裡,我希望你和我一樣對這個新世界感到興奮。

加入吧!

查看重新設計的 tensorflow.org(http://bit.ly/tfdotorg),獲取教程、示例、文檔和工具,來幫助入門……或者直接使用以下命令:

pip install tensorflow == 2.0.0-alpha0

詳細說明參見:http://bit.ly/tfalpha。

本文轉載自 機器之心,原文地址