99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TensorFlow有了替代品,竟然還是谷歌自己做出來(lái)的?

DPVg_AI_era ? 來(lái)源:lq ? 2018-12-16 10:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

TensorFlow有了替代品,竟然還是谷歌自己做出來(lái)的?這其實(shí)是TensorFlow的一個(gè)簡(jiǎn)化庫(kù),名為JAX,可以支持部分TensorFlow的功能,但是比TensorFlow更加簡(jiǎn)潔易用。

什么?TensorFlow 有了替代品?什么?竟然還是谷歌自己做出來(lái)的?先別慌,從各種意義上來(lái)說(shuō),這個(gè)所謂的 “替代品” 其實(shí)是 TensorFlow 的一個(gè)簡(jiǎn)化庫(kù),名為JAX,結(jié)合 Autograd 和 XLA,可以支持部分 TensorFlow 的功能,但是比 TensorFlow 更加簡(jiǎn)潔易用。

雖然還不至于替代 TensorFlow,但已經(jīng)有 Reddit 網(wǎng)友對(duì) JAX 寄予厚望,并表示“早就期待能有一個(gè)可以直接調(diào)用 Numpy API 接口的庫(kù)了!”,“希望它可以取代 TensorFlow!”。

JAX 結(jié)合了 Autograd 和 XLA,是專為高性能機(jī)器學(xué)習(xí)研究打造的產(chǎn)品。

有了新版本的Autograd,JAX 能夠自動(dòng)對(duì) Python 和 NumPy 的自帶函數(shù)求導(dǎo),支持循環(huán)、分支、遞歸、閉包函數(shù)求導(dǎo),而且可以求三階導(dǎo)數(shù)。它支持自動(dòng)模式反向求導(dǎo)(也就是反向傳播)和正向求導(dǎo),且二者可以任意組合成任何順序。

JAX 的創(chuàng)新之處在于,它基于XLA在 GPU 和 TPU 上編譯和運(yùn)行 NumPy 程序。默認(rèn)情況下,編譯是在底層進(jìn)行的,庫(kù)調(diào)用能夠及時(shí)編譯和執(zhí)行。但是 JAX 還允許使用單一函數(shù) API jit將自己的 Python 函數(shù)及時(shí)編譯成經(jīng)過(guò) XLA 優(yōu)化的內(nèi)核。編譯和自動(dòng)求導(dǎo)可以任意組合,因此可以在不脫離 Python 環(huán)境的情況下實(shí)現(xiàn)復(fù)雜算法并獲得最優(yōu)性能。

JAX 最初由 Matt Johnson、Roy Frostig、Dougal Maclaurin 和 Chris Leary 發(fā)起,他們均任職于谷歌大腦團(tuán)隊(duì)。在 GitHub 的說(shuō)明文檔中,作者明確表示:JAX 目前還只是一個(gè)研究項(xiàng)目,不是谷歌的官方產(chǎn)品,因此可能會(huì)有一些 bug。從作者的 GitHub 簡(jiǎn)介來(lái)看,這應(yīng)該是谷歌大腦正在嘗試的新項(xiàng)目,在同一個(gè) GitHub 目錄下的開(kāi)源項(xiàng)目還包括 8 月份在業(yè)內(nèi)引起熱議的強(qiáng)化學(xué)習(xí)框架 Dopamine。

以下是 JAX 的簡(jiǎn)單使用示例。

GitHub 項(xiàng)目傳送門:https://github.com/google/JAX

有關(guān)具體的安裝和簡(jiǎn)單的入門指導(dǎo)大家可以在 GitHub 中自行查看,在此不做過(guò)多贅述。

JAX 庫(kù)的實(shí)現(xiàn)原理

機(jī)器學(xué)習(xí)中的編程是關(guān)于函數(shù)的表達(dá)和轉(zhuǎn)換。轉(zhuǎn)換包括自動(dòng)微分、加速器編譯和自動(dòng)批處理。像 Python 這樣的高級(jí)語(yǔ)言非常適合表達(dá)函數(shù),但是通常使用者只能應(yīng)用它們。我們無(wú)法訪問(wèn)它們的內(nèi)部結(jié)構(gòu),因此無(wú)法執(zhí)行轉(zhuǎn)換。

JAX 可以用于專門化高級(jí)Python+NumPy函數(shù),并將其轉(zhuǎn)換為可轉(zhuǎn)換的表示形式,然后再提升為 Python 函數(shù)。

JAX 通過(guò)跟蹤專門處理 Python 函數(shù)。跟蹤一個(gè)函數(shù)意味著:監(jiān)視應(yīng)用于其輸入,以產(chǎn)生其輸出的所有基本操作,并在有向無(wú)環(huán)圖 (DAG) 中記錄這些操作及其之間的數(shù)據(jù)流。為了執(zhí)行跟蹤,JAX 包裝了基本的操作,就像基本的數(shù)字內(nèi)核一樣,這樣一來(lái),當(dāng)調(diào)用它們時(shí),它們就會(huì)將自己添加到執(zhí)行的操作列表以及輸入和輸出中。為了跟蹤這些原語(yǔ)之間的數(shù)據(jù)流,跟蹤的值被包裝在 Tracer 類的實(shí)例中。

當(dāng) Python 函數(shù)被提供給 grad 或 jit 時(shí),它被包裝起來(lái)以便跟蹤并返回。當(dāng)調(diào)用包裝的函數(shù)時(shí),我們將提供的具體參數(shù)抽象到 AbstractValue 類的實(shí)例中,將它們框起來(lái)用于跟蹤跟蹤器類的實(shí)例,并對(duì)它們調(diào)用函數(shù)。

抽象參數(shù)表示一組可能的值,而不是特定的值:例如,jit 將 ndarray 參數(shù)抽象為抽象值,這些值表示具有相同形狀和數(shù)據(jù)類型的所有 ndarray。相反,grad 抽象 ndarray 參數(shù)來(lái)表示底層值的無(wú)窮小鄰域。通過(guò)在這些抽象值上跟蹤 Python 函數(shù),我們確保它足夠?qū)iT化,以便轉(zhuǎn)換是可處理的,并且它仍然足夠通用,以便轉(zhuǎn)換后的結(jié)果是有用的,并且可能是可重用的。然后將這些轉(zhuǎn)換后的函數(shù)提升回 Python 可調(diào)用函數(shù),這樣就可以根據(jù)需要跟蹤并再次轉(zhuǎn)換它們。

JAX 跟蹤的基本函數(shù)大多與 XLA HLO 1:1 對(duì)應(yīng),并在 lax.py 中定義。這種 1:1 的對(duì)應(yīng)關(guān)系使得到 XLA 的大多數(shù)轉(zhuǎn)換基本上都很簡(jiǎn)單,并且確保我們只有一小組原語(yǔ)來(lái)覆蓋其他轉(zhuǎn)換,比如自動(dòng)微分。 jax.numpy 層是用純 Python 編寫的,它只是用 LAX 函數(shù) (以及我們已經(jīng)編寫的其他 numpy 函數(shù)) 表示 numpy 函數(shù)。這使得 jax.numpy 易于延展。

當(dāng)你使用 jax.numpy 時(shí),底層 LAX 原語(yǔ)是在后臺(tái)進(jìn)行 jit 編譯的,允許你在加速器上執(zhí)行每個(gè)原語(yǔ)操作的同時(shí)編寫不受限制的 Python+ numpy 代碼。

但是 JAX 可以做更多的事情:你可以在越來(lái)越大的函數(shù)上使用jit來(lái)進(jìn)行端到端編譯和優(yōu)化,而不僅僅是編譯和調(diào)度到一組固定的單個(gè)原語(yǔ)。例如,可以編譯整個(gè)網(wǎng)絡(luò),或者編譯整個(gè)梯度計(jì)算和優(yōu)化器更新步驟,而不僅僅是編譯和調(diào)度卷積運(yùn)算。

折衷之處是,jit 函數(shù)必須滿足一些額外的專門化需求:因?yàn)槲覀兿M幾g專門針對(duì)形狀和數(shù)據(jù)類型的跟蹤,但不是專門針對(duì)具體值的跟蹤,所以 jit 裝飾器下的 Python 代碼必須適用于抽象值。如果我們嘗試在一個(gè)抽象的 x 上求 x >0 的值,結(jié)果是一個(gè)抽象的值,表示集合 {True, False},所以 Python 分支就像 if x > 0 會(huì)引起報(bào)錯(cuò)。

有關(guān)使用 jit 的更多要求,請(qǐng)參見(jiàn):https://github.com/google/jax#whats-supported

好消息是,jit 是可選的:JAX 庫(kù)在后臺(tái)對(duì)單個(gè)操作和函數(shù)使用 jit,允許編寫不受限制的 Python+Numpy,同時(shí)仍然使用硬件加速器。但是,當(dāng)你希望最大化性能時(shí),通常可以在自己的代碼中使用 jit 編譯和端到端優(yōu)化更大的函數(shù)。

后續(xù)計(jì)劃

目前項(xiàng)目小組還將對(duì)以下幾項(xiàng)做更多嘗試和更新:

完善說(shuō)明文檔

支持 Cloud TPU

支持多 GPU 和多 TPU

支持完整的 NumPy 功能和部分 SciPy 功能

全面支持 vmap

加速

降低 XLA 函數(shù)調(diào)度開(kāi)銷

線性代數(shù)例程(CPU 上的 MKL 和 GPU 上的 MAGMA)

高效自動(dòng)微分原語(yǔ)cond和while

有關(guān) JAX 庫(kù)的介紹大致如此。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6231

    瀏覽量

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

    關(guān)注

    66

    文章

    8503

    瀏覽量

    134639
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    330

    瀏覽量

    61185

原文標(biāo)題:要替代 TensorFlow?谷歌開(kāi)源機(jī)器學(xué)習(xí)庫(kù) JAX

文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    所以你做出來(lái)了嗎

    所以你做出來(lái)了嗎,求
    發(fā)表于 06-16 01:43

    請(qǐng)問(wèn)有沒(méi)有關(guān)于SN74HC1G14的替代品?

    請(qǐng)問(wèn)有沒(méi)有關(guān)于SN74HC1G14的替代品?要求驅(qū)動(dòng)能力大些,最好是能夠達(dá)到輸出電流30mA這樣的芯片?謝謝
    發(fā)表于 02-14 08:38

    超級(jí)電容是電池的替代品,你認(rèn)同嗎?

    超級(jí)電容作為一種新型的儲(chǔ)能器件,因其能量密度高、快速充電和放電速度、使用時(shí)間長(zhǎng)、電容量大等特點(diǎn),被認(rèn)為是電池的一種替代品。但在高能量需求和長(zhǎng)期保持能量場(chǎng)景下,超級(jí)電容仍無(wú)法替代電池。
    的頭像 發(fā)表于 12-31 15:00 ?1101次閱讀
    超級(jí)電容是電池的<b class='flag-5'>替代品</b>,你認(rèn)同嗎?

    ADS8361輸入不接的時(shí)候,輸出端的時(shí)序竟然有波形出來(lái),是哪里的問(wèn)題?

    我現(xiàn)在在使用這款A(yù)DS8361采集芯片,請(qǐng)問(wèn),當(dāng)輸入不接的時(shí)候,輸出端的時(shí)序竟然有波形出來(lái)6萬(wàn)多,我感覺(jué)是不是芯片問(wèn)題?當(dāng)沒(méi)有輸入信號(hào),輸出端
    發(fā)表于 12-20 08:06

    愛(ài)普生停產(chǎn)產(chǎn)品/替代品

    產(chǎn)品名稱啟動(dòng)(計(jì)劃)最后購(gòu)買(計(jì)劃)最后裝運(yùn)(計(jì)劃)推薦替代方案原因EG-2121CAJun/2026EndofJun/2027EndofDec/2027SG70
    的頭像 發(fā)表于 10-11 11:09 ?1052次閱讀
    愛(ài)普生停產(chǎn)產(chǎn)品/<b class='flag-5'>替代品</b>

    汽車應(yīng)用中有刷DC電機(jī)驅(qū)動(dòng)的繼電器替代品

    電子發(fā)燒友網(wǎng)站提供《汽車應(yīng)用中有刷DC電機(jī)驅(qū)動(dòng)的繼電器替代品.pdf》資料免費(fèi)下載
    發(fā)表于 09-30 10:29 ?1次下載
    汽車應(yīng)用中有刷DC電機(jī)驅(qū)動(dòng)的繼電器<b class='flag-5'>替代品</b>

    FCB-CV7520一體化機(jī)芯的卓越升級(jí)替代品——索尼FCB-EV9520L

    在影像技術(shù)領(lǐng)域,索尼再次以其卓越的創(chuàng)新實(shí)力,推出了FCB-EV9520L一體化機(jī)芯,作為凱茉銳FCB-CV7520的升級(jí)替代品,這款新品在多個(gè)方面實(shí)現(xiàn)顯著的突破與提升。
    的頭像 發(fā)表于 09-26 11:07 ?606次閱讀
    FCB-CV7520一體化機(jī)芯的卓越升級(jí)<b class='flag-5'>替代品</b>——索尼FCB-EV9520L

    tlc4502的替代品哪些?

    由于設(shè)計(jì)需要,要使用tlc4502的dip8封裝的芯片,在網(wǎng)上沒(méi)有找到tlc402dip8的芯片,賣家說(shuō)是軍品,下我想咨詢一下,可以在ti的運(yùn)放找一個(gè)替代的,我查tlc272可以嗎?謝謝?;蛘咂渌倪\(yùn)放,dip8的與402的管腳一致的。
    發(fā)表于 09-25 06:34

    利用TINA仿真一個(gè)10階10M巴特沃斯濾波器,做出來(lái)的電路,輸入信號(hào)會(huì)隨著頻率的變化而變化,為什么?

    利用TINA仿真一個(gè)10階10M巴特沃斯濾波器,如圖,仿真沒(méi)有問(wèn)題。但是做出來(lái)的電路,的輸入信號(hào)會(huì)隨著頻率的變化而變化(頻率從零增加到10M輸入波形一會(huì)減小一會(huì)又增加)。請(qǐng)問(wèn)下是什么原因 測(cè)試
    發(fā)表于 09-18 08:58

    如何考慮將TI Smart DAC作為555定時(shí)器的替代品

    電子發(fā)燒友網(wǎng)站提供《如何考慮將TI Smart DAC作為555定時(shí)器的替代品.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 11:12 ?1次下載
    如何考慮將TI Smart DAC作為555定時(shí)器的<b class='flag-5'>替代品</b>

    LM3080N的替代品哪些?

    有這個(gè)芯片LM3080N的替代品沒(méi)? 幫人詢問(wèn)呢。謝謝。
    發(fā)表于 09-14 08:46

    請(qǐng)問(wèn)什么型號(hào)的放大器可以替代ISO100AP呢?

    您好!由于ISO100AP已停產(chǎn),所以現(xiàn)在需要找到一款合適的替代品。請(qǐng)問(wèn)什么型號(hào)的放大器可以替代ISO100AP呢?請(qǐng)麻煩推薦一款!謝謝!
    發(fā)表于 09-14 08:29

    想用INA333放大1000倍,但是做出來(lái)的板子沒(méi)有輸出,為什么?

    大家好,我現(xiàn)在需要測(cè)一直流小電壓,電壓范圍從0-2mv,采用差分輸入,想用INA333放大1000倍,但是做出來(lái)的板子沒(méi)有輸出,我用TINA仿真也不對(duì),第一次用這個(gè)仿真軟件,可能是我不會(huì)用,我的電路如下
    發(fā)表于 09-06 06:24

    CD74HC4046做出來(lái)的電路9.995M的頻率不穩(wěn)定,是什么原因?

    我10M赫茲經(jīng)2000分頻產(chǎn)生5K赫茲的信號(hào)后用CD74HC4046來(lái)對(duì)5K赫茲的頻率進(jìn)行鎖相倍頻產(chǎn)成9.995M赫茲的頻率,我選用的是PC3口來(lái)作為相位比較端口濾波電路電阻為6.2M電容100P。而實(shí)際做出來(lái)的電路9.995M的頻率不穩(wěn)定。問(wèn)下大家這是什么原因?謝謝大家!
    發(fā)表于 09-02 06:23

    利用OPA2140搭建了一個(gè)0-24mA的電流源,做出來(lái)的pcb有點(diǎn)小問(wèn)題求解

    最近工作需要,搭建了一個(gè)0-24mA的電流源,用OPA2140和OPA140構(gòu)成,設(shè)計(jì)原理圖如下:仿真時(shí)沒(méi)有問(wèn)題,現(xiàn)在做出來(lái)的pcb有點(diǎn)小問(wèn)題: 1、單電源供電時(shí)(正12V)時(shí),輸入0-2V,輸出
    發(fā)表于 08-12 06:13