谷歌開源 TensorFlow 的簡化庫 JAX

2021-09-20 04:29:04 字數 1068 閱讀 1062

谷歌開源了乙個 tensorflow 的簡化庫 jax。

jax 結合了 autograd 和 xla,專門用於高效能機器學習研究。

憑藉 autograd,jax 可以求導迴圈、分支、遞迴和閉包函式,並且它可以進行三階求導。通過 grad,它支援自動模式反向求導(反向傳播)和正向求導,且二者可以任何順序任意組合。

得力於 xla,可以在 gpu 和 tpu 上編譯和執行 numpy 程式。預設情況下,編譯發生在底層,庫呼叫實時編譯和執行。但是 jax 還允許使用單一函式 api jit 將 python 函式及時編譯為 xla 優化的核心。編譯和自動求導可以任意組合,因此可以在 python 環境下實現複雜的演算法並獲得最大的效能。

demo:

import jax.numpy as np

from jax import grad, jit, vmap

from functools import partial

def predict(params, inputs):

for w, b in params:

outputs = np.dot(inputs, w) + b

inputs = np.tanh(outputs)

return outputs

def logprob_fun(params, inputs, targets):

preds = predict(params, inputs)

return np.sum((preds - targets)**2)

grad_fun = jit(grad(logprob_fun))  # compiled gradient evaluation function

perex_grads = jit(vmap(grad_fun, in_axes=(none, 0, 0)))  # fast per-example grads

更深入地看,jax 實際上是乙個可擴充套件的可組合函式轉換系統,grad 和 jit 都是這種轉換的例項。

谷歌開源 TensorFlow 的簡化庫 JAX

開發四年只會寫業務 分布式高併發都不會還做程式設計師?谷歌開源了乙個 tensorflow 的簡化庫 jax。jax 結合了 autograd 和 xla,專門用於高效能機器學習研究。憑藉 autograd,jax 可以求導迴圈 分支 遞迴和閉包函式,並且它可以進行三階求導。通過 grad,它支援自...

TensorFlow的開源與Hadoop的開源

最近看tensorflow 的時候,用git pull下來最新的master一看,哇好多的更新,然後點選去之前看到一半的cc檔案繼續看,好多地方都改變了。但是一看git log,有好多巨大的commit叫什麼 merge commit for internal changes merge for g...

谷歌800多款開源字型

更重要的是,作為開發者,您可以通過 api,在您的網路應用中動態式地查詢有哪些字型可以使用,以及隨時調入各種字型資源,讓您的網頁和應用更加漂亮。class video iframe height 258.75 width 345 frameborder 0 allowfullscreen src s...