J
访问官网JAX
Google推出的用于变换数值函数的机器学习框架
开发平台AI 学习开发平台与框架AI 学习官网查看
JAX 是什么
JAX 是面向加速器的数组计算与程序变换 Python 库,主要服务于高性能数值计算和大规模机器学习。它提供接近 NumPy 风格的数组接口,并让同一套代码可在 CPU、GPU 和 TPU 等后端执行。对于需要把数值函数组织成可变换计算的研究人员和工程师,JAX 可作为编写与扩展计算程序的基础。
它把编译、批处理、自动微分和并行化作为可组合的函数变换,用户可以围绕函数表达计算,再选择相应的变换方式。官方文档还覆盖即时编译、提前编译、数据放置、分片、自动并行化,以及调试和性能分析等工作方式。更深入的使用可延伸到自定义导数规则、GPU 与 TPU 内核、外部函数接口和跨主机的分布式计算,适合数值算法、机器学习和需要扩展执行系统的开发工作。
JAX 的主要功能
数组计算与 NumPy 风格接口
JAX 提供面向数组的计算接口,并以接近 NumPy 的方式组织常见数值操作。它适合希望在熟悉的 Python 数组编程方式上开展高性能数值计算的研究与工程任务。
可组合程序变换
JAX 将编译、批处理、自动微分和并行化提供为可组合的函数变换,便于对同一计算表达式应用不同执行策略。相关接口适合需要从函数中生成梯度、批量处理或优化执行流程的数值程序。
多后端与设备并行
同一套 JAX 代码可在 CPU、GPU 和 TPU 后端执行;文档还介绍数据放置、分片和自动并行化。它适合需要利用多设备资源或组织跨设备数组计算的任务。
扩展导数与设备内核
JAX 文档覆盖自定义导数规则、检查点、Pallas GPU 与 TPU 内核和外部函数接口,也包含跨多主机运行的系统主题。它适合需要扩展自动微分、编写设备内核或接入外部代码的开发者。