在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

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

DPVg_AI_era ? 來源:lq ? 2018-12-16 10:00 ? 次閱讀

TensorFlow有了替代品,竟然還是谷歌自己做出來的?這其實是TensorFlow的一個簡化庫,名為JAX,可以支持部分TensorFlow的功能,但是比TensorFlow更加簡潔易用。

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

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

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

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

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

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

以下是 JAX 的簡單使用示例。

GitHub 項目傳送門:https://github.com/google/JAX

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

JAX 庫的實現(xiàn)原理

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

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

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

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

抽象參數(shù)表示一組可能的值,而不是特定的值:例如,jit 將 ndarray 參數(shù)抽象為抽象值,這些值表示具有相同形狀和數(shù)據(jù)類型的所有 ndarray。相反,grad 抽象 ndarray 參數(shù)來表示底層值的無窮小鄰域。通過在這些抽象值上跟蹤 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 對應(yīng),并在 lax.py 中定義。這種 1:1 的對應(yīng)關(guān)系使得到 XLA 的大多數(shù)轉(zhuǎn)換基本上都很簡單,并且確保我們只有一小組原語來覆蓋其他轉(zhuǎn)換,比如自動微分。 jax.numpy 層是用純 Python 編寫的,它只是用 LAX 函數(shù) (以及我們已經(jīng)編寫的其他 numpy 函數(shù)) 表示 numpy 函數(shù)。這使得 jax.numpy 易于延展。

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

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

折衷之處是,jit 函數(shù)必須滿足一些額外的專門化需求:因為我們希望編譯專門針對形狀和數(shù)據(jù)類型的跟蹤,但不是專門針對具體值的跟蹤,所以 jit 裝飾器下的 Python 代碼必須適用于抽象值。如果我們嘗試在一個抽象的 x 上求 x >0 的值,結(jié)果是一個抽象的值,表示集合 {True, False},所以 Python 分支就像 if x > 0 會引起報錯。

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

好消息是,jit 是可選的:JAX 庫在后臺對單個操作和函數(shù)使用 jit,允許編寫不受限制的 Python+Numpy,同時仍然使用硬件加速器。但是,當(dāng)你希望最大化性能時,通??梢栽谧约旱拇a中使用 jit 編譯和端到端優(yōu)化更大的函數(shù)。

后續(xù)計劃

目前項目小組還將對以下幾項做更多嘗試和更新:

完善說明文檔

支持 Cloud TPU

支持多 GPU 和多 TPU

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

全面支持 vmap

加速

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

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

高效自動微分原語cond和while

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

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

    關(guān)注

    27

    文章

    6225

    瀏覽量

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

    關(guān)注

    66

    文章

    8493

    瀏覽量

    134170
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    330

    瀏覽量

    61049

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

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

收藏 人收藏

    評論

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

    請問有沒有關(guān)于SN74HC1G14的替代品?

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

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

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

    ADS8361輸入不接的時候,輸出端的時序竟然有波形出來,是哪里的問題?

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

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

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

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

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

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

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

    tlc4502的替代品哪些?

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

    利用TINA仿真一個10階10M巴特沃斯濾波器,做出來的電路,輸入信號會隨著頻率的變化而變化,為什么?

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

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

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

    LM3080N的替代品哪些?

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

    請問什么型號的放大器可以替代ISO100AP呢?

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

    想用INA333放大1000倍,但是做出來的板子沒有輸出,為什么?

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

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

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

    利用OPA2140搭建了一個0-24mA的電流源,做出來的pcb有點小問題求解

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

    請問這是個電源,隔離器,還是什么別的產(chǎn)品?客戶需要功能一樣的替代品

    客戶發(fā)來的這個,說要找替代品 我是外行,德文文檔里寫的是開關(guān)電源,但跟市面上的又不大一樣 從端子看來又像是信號隔離器
    發(fā)表于 06-27 14:22
    主站蜘蛛池模板: 中文字幕二区三区 | 综合五月婷婷 | 四虎影院国产精品 | 亚洲最大成人在线 | 三级免费黄色片 | 欧美猛交xxxx乱大交 | 五月综合色 | 超刺激gay腐文h文 | 欧美综合国产精品日韩一 | 丁香网五月天 | 日本一区视频在线播放 | 亚洲w码欧洲s码免费 | 欧美满足你的丝袜高跟ol | 老熟女毛片| 噜噜噜久久 | 美女黄页网站免费进入 | 国产精品九九热 | 国产一级特黄aa级特黄裸毛片 | 白嫩美女在线啪视频观看 | 日日夜夜天天干干 | 在线亚洲精品中文字幕美乳 | a男人的天堂久久a毛片 | 不卡一级毛片免费高清 | 亚洲欧美天堂网 | www.婷婷| 在线一区二区三区 | 又粗又大又猛又爽免费视频 | 亚洲一区中文字幕在线观看 | 中文字幕在线观看日剧网 | 99久久免费中文字幕精品 | 国产最好的精华液网站 | 日本免费一区二区视频 | 亚洲不卡免费视频 | 久久久国产精品免费看 | 久久久久久天天夜夜天天 | 伊人天天干 | 欧洲精品不卡1卡2卡三卡 | 老司机深夜影院入口aaaa | 成人啪啪免费视频 | 日本高清视频成人网www | 成人欧美精品大91在线 |