自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Keras 3.0一統(tǒng)江湖!大更新整合PyTorch、JAX,全球250萬(wàn)開發(fā)者在用了

人工智能 新聞
今天,備受廣大開發(fā)者歡迎的深度學(xué)習(xí)框架Keras,正式更新了3.0版本,實(shí)現(xiàn)了對(duì)PyTorch和JAX的支持,同時(shí)性能提升,還能輕松實(shí)現(xiàn)大規(guī)模分布式訓(xùn)練。

剛剛,Keras 3.0正式發(fā)布!

經(jīng)過(guò)5個(gè)月的公開Beta測(cè)試,深度學(xué)習(xí)框架Keras 3.0終于面向所有開發(fā)者推出。

全新的Keras 3對(duì)Keras代碼庫(kù)進(jìn)行了完全重寫,可以在JAX、TensorFlow和PyTorch上運(yùn)行,能夠解鎖全新大模型訓(xùn)練和部署的新功能。

「Keras之父」Fran?ois Chollet在最新版本發(fā)布之前,也是做了多次預(yù)告。目前,有250+萬(wàn)的開發(fā)者都在使用Keras框架。

重磅消息:我們剛剛發(fā)布了 Keras 3.0!

在 JAX、TensorFlow 和 PyTorch 上運(yùn)行 Keras

使用 XLA 編譯更快地訓(xùn)練

通過(guò)新的 Keras 分發(fā) API 解鎖任意數(shù)量的設(shè)備和主機(jī)的訓(xùn)練運(yùn)行

它現(xiàn)在在 PyPI 上上線

開發(fā)者甚至可以將Keras用作低級(jí)跨框架語(yǔ)言,以開發(fā)自定義組件,例如層、模型或指標(biāo)。

只需一個(gè)代碼庫(kù),這些組件便可用在JAX、TensorFlow、PyTorch中的原生工作流。

再次讓Keras成為多后端

最初的Keras可以在Theano、TensorFlow、CNTK,甚至MXNet上運(yùn)行。

2018年,由于Theano和CNTK已停止開發(fā),TensorFlow似乎成為了唯一可行的選擇,于是,Keras將開發(fā)重點(diǎn)放在了TensorFlow上。

而到了今年,情況發(fā)生了變化。

根據(jù)2023年StackOverflow開發(fā)者調(diào)查,和2022年Kaggle機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)調(diào)查等顯示,

TensorFlow擁有55%到60%的市場(chǎng)份額,是ML在生產(chǎn)領(lǐng)域的首選。

而PyTorch擁有40%到45%的市場(chǎng)份額,是ML在研究領(lǐng)域的首選。

與此同時(shí),JAX雖然市場(chǎng)份額要小得多,但已被Google DeepMind、Midjourney、Cohere等生成式AI領(lǐng)域的頂級(jí)參與者所接受。

于是,開發(fā)團(tuán)隊(duì)對(duì)Keras代碼庫(kù)進(jìn)行了完全重寫,新誕生的Keras 3.0基于模塊化后端架構(gòu)進(jìn)行了重構(gòu),有能力在任意框架上運(yùn)行。

同時(shí)新的Keras也保證了兼容性,比如在使用TensorFlow后端時(shí),你可以簡(jiǎn)單地使用 import keras_core as keras 來(lái)替換from tensorflow import keras

——現(xiàn)有的代碼將毫無(wú)問(wèn)題地運(yùn)行,而且由于 XLA 編譯,通常性能略有提高。

Keras vs. TensorFlow

小編在這里給大家舉一個(gè)例子,說(shuō)明如何從TensorFlow的代碼轉(zhuǎn)換成Keras的形式。

TensorFlow Core Implementation

Keras implementation

相比之下,我們可以清楚地看到Keras帶來(lái)的簡(jiǎn)潔性。

TensorFlow可以對(duì)每個(gè)變量進(jìn)行更精細(xì)的控制,而Keras提供了易用性和快速原型設(shè)計(jì)的能力。

對(duì)于一些開發(fā)者來(lái)說(shuō),Keras省去了開發(fā)中的一些麻煩,降低了編程復(fù)雜性,節(jié)省了時(shí)間成本。

Keras 3.0新特性

Keras最大的優(yōu)勢(shì)在于,通過(guò)出色的UX、API設(shè)計(jì)和可調(diào)試性可實(shí)現(xiàn)高速開發(fā)。

而且,它還是一個(gè)經(jīng)過(guò)實(shí)戰(zhàn)考驗(yàn)的框架,并為世界上一些最復(fù)雜、最大規(guī)模的ML系統(tǒng)提供支持,比如Waymo自動(dòng)駕駛車、YouTube推薦引擎。

那么,使用新的多后端Keras 3還有哪些額外的優(yōu)勢(shì)呢?

- 始終為模型獲得最佳性能。

在基準(zhǔn)測(cè)試中,發(fā)現(xiàn)JAX通常在GPU、TPU和CPU上提供最佳的訓(xùn)練和推理性能,但結(jié)果因模型而異,因?yàn)榉荴LA TensorFlow在GPU上偶爾會(huì)更快。

它能夠動(dòng)態(tài)選擇為模型提供最佳性能的后端,而無(wú)需對(duì)代碼進(jìn)行任何更改,這意味著開發(fā)者可以以最高效率進(jìn)行訓(xùn)練和服務(wù)。

- 為模型解鎖生態(tài)系統(tǒng)可選性。

任何Keras 3模型都可以作為PyTorch模塊實(shí)例化,可以作為 TensorFlow SavedModel 導(dǎo)出,也可以作為無(wú)狀態(tài) JAX 函數(shù)實(shí)例化。

這意味著開發(fā)者可以將Keras 3模型與PyTorch生態(tài)系統(tǒng)包,全系列TensorFlow部署和生產(chǎn)工具(如TF-Serving,TF.js和TFLite)以及JAX大規(guī)模TPU訓(xùn)練基礎(chǔ)架構(gòu)一起使用。使用 Keras 3 API 編寫一個(gè) model.py ,即可訪問(wèn) ML 世界提供的一切。

- 利用JAX的大規(guī)模模型并行性和數(shù)據(jù)并行性。

Keras 3包含一個(gè)全新的分布式 API,即keras.distribution 命名空間,目前已在JAX后端實(shí)現(xiàn)(即將在TensorFlow和PyTorch后端實(shí)現(xiàn))。

通過(guò)它,可以在任意模型尺度和聚類尺度上輕松實(shí)現(xiàn)模型并行、數(shù)據(jù)并行以及兩者的組合。由于它能將模型定義、訓(xùn)練邏輯和分片配置相互分離,因此使分發(fā)工作流易于開發(fā)和維護(hù)。

- 最大限度地?cái)U(kuò)大開源模型版本的覆蓋面。

想要發(fā)布預(yù)訓(xùn)練模型?想讓盡可能多的人能夠使用它嗎?如果你在純TensorFlow或PyTorch中實(shí)現(xiàn)它,它將被大約一半的社區(qū)使用。

如果你在Keras 3中實(shí)現(xiàn)了它,那么任何人都可以立即使用它,無(wú)論他們選擇的框架是什么(即使他們自己不是Keras用戶)。在不增加開發(fā)成本的情況下實(shí)現(xiàn)2倍的影響。

- 使用來(lái)自任何來(lái)源的數(shù)據(jù)管道。

Keras 3 / fit() / evaluate() predict() 例程與 tf.data.Dataset 對(duì)象、PyTorch DataLoader 對(duì)象、NumPy 數(shù)組、Pandas 數(shù)據(jù)幀兼容——無(wú)論你使用什么后端。你可以在 PyTorch DataLoader 上訓(xùn)練 Keras 3 + TensorFlow 模型,也可以在tf.data.Dataset上訓(xùn)練Keras 3 + PyTorch模型。

預(yù)訓(xùn)練模型

現(xiàn)在,開發(fā)者即可開始使用Keras 3的各種預(yù)訓(xùn)練模型。

所有40個(gè)Keras應(yīng)用程序模型( keras.applications 命名空間)在所有后端都可用。KerasCV和KerasNLP中的大量預(yù)訓(xùn)練模型也適用于所有后端。

其中包括:

- BERT

- OPT

- Whisper

- T5

- Stable Diffusion

- YOLOv8

跨框架開發(fā)

Keras 3能夠讓開發(fā)者創(chuàng)建在任何框架中都相同的組件(如任意自定義層或預(yù)訓(xùn)練模型),它允許訪問(wèn)適用于所有后端的 keras.ops 命名空間。

Keras 3包含NumPy API的完整實(shí)現(xiàn),——不是「類似 NumPy」,而是真正意義上的 NumPy API,具有相同的函數(shù)和參數(shù)。比如 ops.matmul、ops.sum、ops.stack、ops.einsum 等函數(shù)。

Keras 3還包含NumPy中沒(méi)有的,一組特定于神經(jīng)網(wǎng)絡(luò)的函數(shù),例如 ops.softmax, ops.binary_crossentropy, ops.conv等。

另外,只要開發(fā)者使用的運(yùn)算,全部來(lái)自于keras.ops ,那么自定義的層、損失函數(shù)、優(yōu)化器就可以跨越JAX、PyTorch和TensorFlow,使用相同的代碼。

開發(fā)者只需要維護(hù)一個(gè)組件實(shí)現(xiàn),就可以在所有框架中使用它。

圖片

Keras架構(gòu)

下面,我們來(lái)稍稍理解一下Keras的機(jī)制和架構(gòu)。

在Keras中,Sequential 和 Model 類是模型構(gòu)建的核心,為組裝層和定義計(jì)算圖提供了一個(gè)框架。

Sequential 是層的線性堆棧。它是Model 的子類,專為簡(jiǎn)單情況而設(shè)計(jì),模型由具有一個(gè)輸入和一個(gè)輸出的線性層堆棧組成。

Sequential 類有以下一些主要特點(diǎn):

簡(jiǎn)單性:只需按照要執(zhí)行的順序列出圖層即可。

自動(dòng)前向傳遞:當(dāng)向Sequential模型添加層時(shí),Keras會(huì)自動(dòng)將每一層的輸出連接到下一層的輸入,從而創(chuàng)建前向傳遞,而無(wú)需手動(dòng)干預(yù)。

內(nèi)部狀態(tài)管理:Sequential管理層的狀態(tài)(如權(quán)重和偏置)和計(jì)算圖。調(diào)用compile時(shí),它會(huì)通過(guò)指定優(yōu)化器、損失函數(shù)和指標(biāo)來(lái)配置學(xué)習(xí)過(guò)程。

訓(xùn)練和推理:Sequential類提供了fit、evaluate和predict等方法,分別用于訓(xùn)練、評(píng)估和預(yù)測(cè)模型。這些方法在內(nèi)部處理訓(xùn)練循環(huán)和推理過(guò)程。

Model類與函數(shù)式API一起使用,提供了比Sequential更大的靈活性。它專為更復(fù)雜的架構(gòu)而設(shè)計(jì),包括具有多個(gè)輸入或輸出、共享層和非線性拓?fù)涞哪P汀?/span>

Model 類的主要特點(diǎn)有:

層圖:Model允許創(chuàng)建層圖,允許一個(gè)層連接到多個(gè)層,而不僅僅是上一個(gè)層和下一個(gè)層。

顯式輸入和輸出管理:在函數(shù)式API中,可以顯式定義模型的輸入和輸出。相比于Sequential,可以允許更復(fù)雜的架構(gòu)。

連接靈活性:Model類可以處理具有分支、多個(gè)輸入和輸出以及共享層的模型,使其適用于簡(jiǎn)單前饋網(wǎng)絡(luò)以外的廣泛應(yīng)用。

狀態(tài)和訓(xùn)練管理:Model類管理所有層的狀態(tài)和訓(xùn)練過(guò)程,同時(shí)提供了對(duì)層的連接方式,以及數(shù)據(jù)在模型中的流動(dòng)方式的更多控制。

Model 類和 Sequential類都依賴于以下機(jī)制:

層注冊(cè):在這些模型中添加層時(shí),層會(huì)在內(nèi)部注冊(cè),其參數(shù)也會(huì)添加到模型的參數(shù)列表中。

自動(dòng)微分:在訓(xùn)練過(guò)程中,Keras使用后端引擎(TensorFlow等)提供的自動(dòng)微分來(lái)計(jì)算梯度。這一過(guò)程對(duì)用戶而言是透明的。

后端執(zhí)行:實(shí)際計(jì)算(如矩陣乘法、激活等)由后端引擎處理,后端引擎執(zhí)行模型定義的計(jì)算圖。

序列化和反序列化:這些類包括保存和加載模型的方法,其中涉及模型結(jié)構(gòu)和權(quán)重的序列化。

從本質(zhì)上講,Keras中的Model和Sequential類抽象掉了定義和管理計(jì)算圖所涉及的大部分復(fù)雜性,使用戶能夠?qū)W⒂谏窠?jīng)網(wǎng)絡(luò)的架構(gòu),而不是底層的計(jì)算機(jī)制。

Keras 自動(dòng)處理各層如何相互連接、數(shù)據(jù)如何在網(wǎng)絡(luò)中流動(dòng)以及如何進(jìn)行訓(xùn)練和推理操作等錯(cuò)綜復(fù)雜的細(xì)節(jié)。

對(duì)于Keras的大更新,有網(wǎng)友使用下面的圖片表達(dá)自己的看法:

雖然小編也不知道為什么要炸TensorFlow。

還有網(wǎng)友表示剛好可以用上:

圖片

另一位網(wǎng)友發(fā)來(lái)賀電,「在PyTorch之上使用Keras是一項(xiàng)了不起的成就!」

圖片

當(dāng)然也有網(wǎng)友唱反調(diào),「我想知道為什么有人會(huì)使用Keras + Torch而不是普通的 Torch,因?yàn)門orch與Tensorflow不同,它有一組很好的API」。

圖片

此時(shí)Tensorflow的內(nèi)心:啊對(duì)對(duì)對(duì),你們說(shuō)得都對(duì)。

責(zé)任編輯:張燕妮 來(lái)源: 新智元
相關(guān)推薦

2009-09-27 09:05:50

Intel架構(gòu)

2013-01-06 09:27:02

CPUHaswellARM架構(gòu)

2023-11-29 14:48:01

JAXPyTorch

2019-07-10 10:38:00

微軟AzureLinux

2012-05-22 09:43:59

操作系統(tǒng)Linux

2018-01-12 05:04:34

移動(dòng)支付用微信支付支付寶

2011-01-27 09:16:04

微軟云計(jì)算

2011-02-23 17:49:21

2009-05-11 08:44:02

GoogleAndroid移動(dòng)OS

2024-06-04 14:06:00

2023-03-13 13:40:20

機(jī)器學(xué)習(xí)AI

2011-08-23 11:10:14

ATM

2024-10-18 14:43:31

2014-05-30 17:21:04

WWDC2014預(yù)測(cè)蘋果

2017-02-23 20:30:29

后端前端webpack

2010-02-04 17:25:59

Ubuntu Linu

2017-02-21 10:00:44

大數(shù)據(jù)深度學(xué)習(xí)框架對(duì)比

2023-11-08 08:15:29

2023-08-11 08:00:00

人工智能Keras 3.0
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)