谷歌開源了乙個 tensorflow 的簡化庫 jax。
jax 結合了 autograd 和 xla,專門用於高效能機器學習研究。
憑藉 autograd,jax 可以求導迴圈、分支、遞迴和閉包函式,並且它可以進行三階求導。通過 grad,它支援自動模式反向求導(反向傳播)和正向求導,且二者可以任何順序任意組合。
得力於 xla,可以在 gpu 和 tpu 上編譯和執行 numpy 程式。預設情況下,編譯發生在底層,庫呼叫實時編譯和執行。但是 jax 還允許使用單一函式 api jit 將 python 函式及時編譯為 xla 優化的核心。編譯和自動求導可以任意組合,因此可以在 python 環境下實現複雜的演算法並獲得最大的效能。
demo:
import jax.numpy as np更深入地看,jax 實際上是乙個可擴充套件的可組合函式轉換系統,grad 和 jit 都是這種轉換的例項。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
谷歌開源 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...