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