機器心臟排列
參與:思源和益銘
一行代碼定義計算圖,好容易,我媽再也不用擔心我的機器學(xué)習(xí)了。
項目地址:https://github.com/JuliusKunze/jaxnet
JAXnet是一個基于JAX的深度學(xué)習(xí)庫,它的API提供了便捷的建模體驗。與主流框架如TensorFlow 2.0或PyTorch相比,JAXnet具有獨特的優(yōu)勢。拿栗子來說,不管是Keras還是PyTorch。它們被模擬成積木。
然而,有一種比構(gòu)建塊更簡單的方法,那就是JAXnet的模塊化:
fromjaxnet import*凈=順序,密集,密集,對數(shù)最大值)
從預(yù)定義的模塊創(chuàng)建神經(jīng)網(wǎng)絡(luò)模型。
要創(chuàng)建完全連接的網(wǎng)絡(luò),您可以直接使用預(yù)定義的模塊??梢哉fJAXnet定義了計算圖,只需要一行代碼。寫一個神經(jīng)網(wǎng)絡(luò),原來這么簡單。
一般來說,JAXnet側(cè)重于模塊化、可擴展性和易用性:
采用了不可變權(quán)重,而不是全局計算圖,從而獲得更強的穩(wěn)健性; 用于構(gòu)建神經(jīng)網(wǎng)絡(luò)、訓(xùn)練循環(huán)、預(yù)處理、后處理等過程的 NumPy 代碼經(jīng)過 GPU 編譯; 任意模塊或整個網(wǎng)絡(luò)的正則化、重參數(shù)化都只需要一行代碼; 取消了全局隨機狀態(tài),采用了更便捷的 Key 控制。擴展性
您可以使用@ parameterized來定義自己的模塊并重用其他模塊:
fromjax importnumpy asnp@ parameter ized floss:return-NP . mean* targets)
所有模塊都是這樣組合的。杰克斯·努皮是努皮的鏡像。只要知道如何使用numpy,就可以知道JAXnet的大部分用法。
以下是TensorFlow2/Keras的代碼,比JAXnet簡單:
importtensorflow astffromtensorflow.keras importSequentialfromtensorflow.keras.layers importDense, Lambdanet =順序、密集、密集、λ]
defloss:return-tf.reduce_mean*目標)
需要注意的是,Lambda函數(shù)在JAXnet中不是必須的。relu和logsoftmax函數(shù)都是Python寫的。
不可變重量
不像TensorFlow或者Keras,JAXnet沒有全局計算圖。模塊,如。凈價和損失不能節(jié)省可變權(quán)重。權(quán)重存儲在不同的不可變類中。這些權(quán)重由init_parameters函數(shù)初始化,以提供隨機鍵和樣本輸入:
fromjax.random importPRNGKeydefnext_batch:returnnp.zeros), np.zeros)params = loss . init _ parameters,* next _ batch)print#
目標函數(shù)不在線改變權(quán)重,而是不斷更新下一個版本的權(quán)重。它們以新的優(yōu)化狀態(tài)返回,并由get_parameters檢索。
opt = optimizers.Adamstate = opt.init_statefor _ in range:state = opt.optimize # accelerate with jit=Truetrained_params = opt.get_parameters當網(wǎng)絡(luò)需要評估時:
test_loss= loss.apply # accelerate with jit=TrueJAXnet的正則化也很簡單:
loss= L2egularized其他特征
除了簡潔的代碼,JAXnet還支持GPU上的計算。也可以用jit編譯,擺脫Python運行緩慢的問題。同時,JAXnet是單步調(diào)試,就像Python代碼一樣。
安裝也很簡單,用pip安裝即可。如果需要使用GPU,需要先安裝jaxlib。
其他具體的空氣污染指數(shù)可參考:https://github.com/JuliusKunze/jaxnet/blob/master/API.md
這篇文章是為機器的核心而寫的。請聯(lián)系本微信官方賬號進行授權(quán)。
1.《jax JAXnet:一行代碼定義計算圖,兼容三大主流框架,可GPU加速》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《jax JAXnet:一行代碼定義計算圖,兼容三大主流框架,可GPU加速》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/junshi/1691227.html