谷歌开源了一个 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 都是这类转换的实例。
项目地址:https://github.com/谷歌/JAX
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务