Keras 3.0:您需要了解的一切都在此文中
譯文譯者 | 布加迪
審校 | 重樓
在深入研究這個令人興奮的發展動向的細節之前,不妨先設想一個場景以便更好地理解。想象自己是一位高級數據科學家,主持一個復雜的圖像分類項目。您那基于TensorFlow的模型表現得非常好。然而隨著更多功能添加進來,您注意到一些團隊成員因可擴展性而青睞JAX,另一些成員因易于使用而偏愛PyTorch。作為團隊領導,您如何確保無縫協作,同時保持模型在各種深度學習框架中的效率?
Keras團隊認識到這個挑戰后推出了Keras Core,這個創新的多后端庫實現了Keras API,支持TensorFlow、JAX和PyTorch。該庫將在2023年秋季迎來Keras 3.0。但在我們直接介紹Keras 3.0之前,不妨先簡單了解一下Keras的歷史。
Keras的簡史和通向3.0之路
2015年,Francois Chollet推出了Keras,這是用Python編寫的開源深度學習庫。這個簡單而強大的API可以簡化復雜的神經網絡構建,迅速在研究人員、學生和專業人士當中流行起來。Keras逐漸得到了大幅改進,使其對深度學習社區更具吸引力。最終,Keras成為了谷歌尖端深度學習框架TensorFlow的一個組成部分。大約在同一時間,Facebook的人工智能研究實驗室開發出了以直觀靈活的模型構建而聞名的PyTorch。與此同時,JAX成為高性能機器學習研究的另一個強大框架。隨著這些框架日漸受到追捧,開發人員開始面臨在框架之間進行選擇的困境。這導致了深度學習社區的進一步碎片化。
認識到支離破碎的框架帶來的挑戰,Keras的開發人員決定再次革新這個庫,推出Keras 3.0。
Keras 3.0的主要特性
Keras 3.0使您能夠有效地與團隊協作。通過結合TensorFlow、JAX和PyTorch的優點,您可以開發統一前端的復雜模型。以下是讓Keras 3.0改變游戲規則的幾項特性:
1.多后端支持
Keras 3.0充當超級連接器,支持無縫地使用TensorFlow、JAX和PyTorch。開發人員可以自由地為特定的任務混合搭配最佳工具,無需更改代碼。
2.性能優化
性能優化是Keras 3.0的關鍵特性。默認情況下,Keras 3.0利用XLA(加速線性代數)編譯。XLA編譯可以優化數學計算,使它們在GPU和TPU等硬件上運行起來快得多。它還允許您為AI模型動態選擇最佳后端,以確保最佳效率。這類性能優化特性非常重要,便于訓練更多模型、進行更多實驗,并大大加快獲得結果的速度。
3.擴大的生態系統覆蓋面
您的Keras模型可以用作PyTorch模塊、TensorFlow SavedModels或JAX的大規模TPU訓練基礎設施的一部分。這意味著您可以利用每個框架的優勢。因此,有了Keras 3.0擴大的生態系統,您不會被單一的生態系統所束縛。它就像一個通用適配器,讓您可以把最喜歡的設備連接到任何機器上。
4.跨框架低級語言
引入keras_core.ops命名空間是一項突破性的特性,允許您編寫一次自定義操作,就可以毫不費力地在不同深度學習框架中使用。keras_core.ops提供了一組類似流行的NumPy API的工具和函數,NumPy API是Python中廣泛使用的數值計算庫。這種級別的跨框架兼容性促進了代碼的可重用性,并鼓勵協作。
5.逐步披露復雜性
Keras 3.0的這種設計方法使其有別于其他深度學習框架。假設您是初學者,想用Keras 3.0構建一個簡單的神經網絡。它一開始就為您提供了最直接的工作流程。一旦熟悉了基本面,您就可以訪問所有高級特性和低級功能。它不會將您限制在預定義的工作流程。這種方法的優點在于其適應性,頗受初學者和經驗豐富的深度學習從業人員的歡迎。
6.用于層、模型、指標和優化器的無狀態API
在深度學習的背景下,狀態指在訓練過程中變化的內部變量和參數。然而,JAX基于無狀態原則進行操作,這意味著函數沒有可變變量或內部狀態。Keras 3.0通過Stateless API支持JAX的無狀態性。它允許以無狀態的方式設計深度學習的基本組件,即層、模型、指標和優化器。這種獨特的兼容性使Keras 3.0成為現代AI開發中一種不可或缺的工具。
Keras 3.0入門
Keras Core與Linux和MacOS系統兼容。設置Keras 3.0是一個簡單的過程。下面是分步指南:
1.克隆并瀏覽到存儲庫
使用以下命令,將存儲庫克隆到本地系統中:
git clone https://github.com/keras-team/keras-core.git
使用以下命令,將根目錄改為clone keras-core:
cd keras-core
2.安裝依賴項
打開您的間隔(interval),運行以下命令來安裝所需的依賴項。
pip install -r requirements.txt
3.運行安裝命令
運行以下腳本,以處理安裝過程:
python pip_build.py--install
4.配置后端
默認情況下,Keras Core嚴格要求TensorFlow作為后端框架,但您可以使用以下兩種方式配置它:
方法01:您可以將KERAS_BACKEND環境變量設置為首選的后端選項。
export ERAS_BACKEND = " jax”
方法02:您可以編輯位于~/. keras/keras.json的本地Keras配置文件。在文本編輯器中打開該文件,并將“backend”選項更改為首選的后端。
{
"backend": "jax",
"floatx": "float32",
"epsilon": 1e-7,
"image_data_format": "channels_last"
}
5.驗證安裝
為了確保Keras Core已與您選擇的后端一并正確安裝,可以通過導入庫來測試它。打開Python解釋器或Jupyter Notebook,運行以下命令:
import keras_core as keras
結語
雖然Keras 3.0有一些限制,比如當前的TensorFlow依賴以及針對其他后端的有限的tf.data支持,但這種框架的未來潛力大有希望。到目前為止,Keras已發布了測試版,他們鼓勵開發人員提供寶貴的反饋。如果您有興趣了解有關它的更多信息,可以在這里找到Keras Core(Keras 3.0)的文檔:https://keras.io/api/。不要害怕嘗試新想法。Keras 3.0是一個功能強大的工具,趕緊體驗吧!
原文標題:Keras 3.0: Everything You Need To Know,作者:Kanwal Mehreen