JAX

TensorFlow 简化库
授权协议 Apache-2.0
开发语言 Python
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 不详
投 递 者 壤驷建德
操作系统 跨平台
开源组织 Google
适用人群 未知
 软件概览

JAX 是一个 TensorFlow 的简化库,它结合了 Autograd 和 XLA,专门用于高性能机器学习研究。

凭借 Autograd,JAX 可以求导循环、分支、递归和闭包函数,并且它可以进行三阶求导。通过 grad,它支持自动模式反向求导(反向传播)和正向求导,且二者可以任何顺序任意组合。

得力于 XLA,可以在 GPU 和 TPU 上编译和运行 NumPy 程序。默认情况下,编译发生在底层,库调用实时编译和执行。但是 JAX 还允许使用单一函数 API jit 将 Python 函数及时编译为 XLA 优化的内核。编译和自动求导可以任意组合,因此可以在 Python 环境下实现复杂的算法并获得最大的性能。

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 都是这种转换的实例。

  • 目录 安装说明 pip安装 conda安装 参考网址 注:该项目目前仍然没有官方的Windows支持,需要自己编译。 安装说明 该库安装时分为两部分: jaxlib,该库平台相关,目前没有官方的编译 jax,该库依赖jaxlib,平台无关,可以直接安装。 找到目前一个还活跃的jaxlib非官方编译服务: https://github.com/cloudhan/jax-windows-builder

  •         谷歌于 2018 年推出的 JAX 迎来了迅猛发展,2020 年,DeepMind 宣布使用 JAX 来加速其研究。越来越多来自谷歌大脑(Google Brain)和其他机构的项目也都在使用 JAX。 JAX 已经在深度学习、机器人 / 控制系统、贝叶斯方法和科学模拟等诸多领域得到了广泛应用。         ​JAX 的定位科学计算(Scientific Computing)和函

 相关资料
  • 我尝试使用mave-jaxb2插件和jaxb2-basics简化插件将XSD转换为JAXB类。 pom中的配置。xml在本文中提供 样品xsd(复杂选择类型) 然而,生成的JAXB类有aOrB引用。

  • 8.1.3.简化 StatusActivity 现在我们可以通过 YambaApplication 获取 Twitter 对象了,接下来需要对 StatusActivity 进行修改,在其中使用 YambaApplication 提供的功能。下面是新版的PostToTwitter: class PostToTwitter extends AsyncTask<String, Integer, Str

  • 我们用Android中非常典型的例子去解释它是怎么工作的:View.setOnClickListener()方法。如果我们想用Java的方式去增加点击事件的回调,我首先要编写一个OnClickListener接口: public interface OnClickListener { void onClick(View v); } 然后我们要编写一个匿名内部类去实现这个接口: view.s

  • 首先了解一下什么是URL简化,假如我们有一个博客系统,每个用户都有自己的主页,这个控制器是UserController,方法是index,每个用户都有一个唯一的编号,那么进入到id为123的用户主页,PATHINFO模式下需要键入的URL为http://YourDomain/User/index/id/123,这个路径能不能更短一些呢?答案是可以的。比如我想让这个路径变为http://YourDo

  • 问题内容: 因此,我必须编写一个bash脚本来检查9x9的“ sudoku”解决方案是否有效,但简化的是我不必将其划分为3x3,而只是检查行和列是否包含任何重复的数字,并且有效数字只有1-9 .. 这就是我的想法,但无法正常工作: 问题答案:

  • 假设我要计算8的平方根。如下所示,有两种方法可以显示结果: 我认为获得第二个解决方案的最好方法是: 我想在我的Java应用程序中尝试do display 2√2而不是2828 427...所以我想按照这些步骤开发一个类。让我们考虑8的平方根。 null 我想我可以在一个数组中存储每个基数的指数,然后尝试以某种方式导出它。你有什么建议吗?

  • 有什么方法可以让ANTLR4自动删除生成的解析树中的冗余节点吗? 更具体地说,我一直在试验GLSL的语法,由于自动处理操作符优先级所需的规则转发,您最终会在解析树中看到长的线性“表达式”序列。 大多数生成的树节点都只是简单地“转发到下一个优先级”,所以不要提供任何有用的语法信息--你只需要每个序列中最后一个表达式节点(即规则转发停止的点),或者它成为一个实际的树节点并拥有多个子节点的点(即在源中遇

  • 我正在学习流api,我被流的reduce方法困住了。我有一些细绳,我想把它们凝聚起来。下面是我的代码片段: 我不想让它们按顺序排列,但至少它们不应该重复“虚拟”字符串。 这会导致奇怪的输出。请帮我找出这里出了什么问题。