Logo

#自动微分

Logo of chainer
chainer
Chainer是一个Python深度学习框架,提供基于define-by-run方法的自动微分API(动态计算图)和面向对象的高级API,用于构建和训练神经网络。通过CuPy支持CUDA/cuDNN,实现高性能训练和推理。尽管Chainer已进入维护阶段,仅进行bug修复和维护,但其文档、教程和社区资源仍然活跃,适合研究和开发深度学习模型的用户。
Logo of Enzyme
Enzyme
Enzyme是一款高性能的LLVM和MLIR自动微分插件,可以通过调用__enzyme_autodiff函数对目标函数进行微分,并替换为相应的梯度值。其高效性使其在处理优化代码时能与先进的自动微分工具相媲美。用户只需几步简单命令即可安装Enzyme,安装和使用的详细信息可在官网获取。Enzyme适用于学术领域的自动微分需求,支持CUDA、OpenMP、MPI等并行计算模式,并提供Julia和Rust绑定。
Logo of slang
slang
Slang是一种基于HLSL的高性能着色语言,为现代GPU和图形API优化设计。它支持模块化开发、自动微分、泛型和接口等特性,并保持与HLSL代码的兼容性。Slang能够生成多个目标平台的代码,如D3D12、Vulkan和Metal,同时提供完整的反射信息和调试功能。这使得Slang成为管理大型着色器代码库的有力工具,能够提升开发效率和代码维护性。
Logo of autodiff
autodiff
autodiff是一个C++17自动微分库,通过现代编程技术实现高效的导数计算。支持前向和反向模式,只需少量代码修改即可处理复杂函数。该库适用于机器学习、优化和科学计算领域,为开发者提供灵活的自动微分功能。
Logo of dinosaur
dinosaur
Dinosaur是一个基于JAX的全球大气建模谱系动力核心。它可以求解浅水方程和原始方程,支持自动微分,并针对GPU/TPU等硬件优化。项目提供了标准测试案例,如正压不稳定性和Held-Suarez强迫。Dinosaur为大气科学研究提供了高效的并行计算工具,有助于推进大气动力学研究。
Logo of kotlingrad
kotlingrad
Kotlin∇是一个为JVM平台开发的类型安全自动微分框架。它支持高维数据结构和运算符,通过类型系统确保代数约束,减少运行时错误。框架功能包括标量、向量和矩阵运算,形状安全的代数操作,以及偏微分和高阶微分。Kotlin∇还提供符号微分恢复和数值梯度检查,为开发者提供全面的微分编程工具。
Logo of gorgonia
gorgonia
Gorgonia是专为Go语言开发的机器学习库,提供自动微分、符号微分、梯度下降优化和数值稳定功能。用户可以轻松编写和评估多维数组的数学方程,并利用CUDA进行快速计算。其目标是成为高性能、可扩展的机器学习和图计算库,适合多机部署,同时支持非标准深度学习和神经网络研究。
Logo of awesome-jax
awesome-jax
该页面收录了JAX相关的优质库、项目和资源,旨在帮助机器学习研究人员在GPU和TPU等加速器上实现高性能计算。资源涵盖神经网络库、强化学习工具和概率编程等多个领域,并提供了详细的库介绍、学术论文和教程。用户可以找到如Flax、Haiku、Objax等知名库,以及新兴的FedJAX、BRAX等库,适用于机器学习和科研项目中使用JAX进行快速原型开发和高效计算。
Logo of Endia
Endia
Endia是一个专为科学计算设计的动态数组库,提供类似PyTorch、Numpy和JAX的功能。它支持自动微分、复数运算、双重API接口和JIT编译。Endia可进行命令式和函数式编程,计算任意阶导数,适用于高级科学应用。该项目注重代码清晰度和教育价值,致力于推动AI和科学计算领域的进步。
Logo of Trace
Trace
Trace是微软开发的创新AutoDiff工具,旨在实现AI系统的端到端训练。该工具通过捕获和传播执行轨迹,扩展了反向传播算法的应用范围。Trace作为Python库,支持直接编写代码并优化特定部分,类似于PyTorch的使用方式。它可处理多种反馈类型,如数值奖励、损失函数、自然语言文本和编译器错误。Trace为AI系统优化提供了灵活且强大的解决方案,适用于各种复杂的AI训练场景。
Logo of keops
keops
KeOps是一个开源库,专门用于高效计算大型数组的归约运算。它集成了高效C++程序和自动微分引擎,支持Python、Matlab和R等多种编程语言。KeOps尤其适合处理核矩阵向量乘积、K近邻查询和N体问题等计算,即使在核矩阵或距离矩阵超出内存容量的情况下也能高效运行。与PyTorch GPU基准相比,KeOps在多种几何应用中能实现10-100倍的性能提升,广泛应用于核方法和几何深度学习等领域。
Logo of textgrad
textgrad
TextGrad是一个基于大语言模型文本反馈实现自动'微分'的框架。它提供简洁API用于定义损失函数和基于文本反馈的优化。该框架与PyTorch接口相似,可优化文本、代码等非结构化变量,为自然语言处理和人工智能开发提供新思路。
Logo of EffectiveTensorflow
EffectiveTensorflow
本指南深入讲解 TensorFlow 2,包括基本概念、广播机制、符号计算和控制流操作等。探讨如何通过重载操作符和控制流来提升代码效率,与 NumPy 的兼容性增强了代码的可读性。同时,介绍了广播机制的优势与潜在缺点,并展示了如何在多设备上使用 TensorFlow 2 的新 API 高效地处理和优化大型神经网络。
Logo of jaxdf
jaxdf
jaxdf是基于JAX的开源框架,用于创建可微分数值模拟器。该框架支持任意离散化,主要应用于物理系统建模,如波传播和偏微分方程求解。jaxdf生成的纯函数模型可与JAX编写的可微分程序无缝集成,适用于神经网络层或物理损失函数。框架提供自定义算子、多种离散化方法,并附有详细文档和示例。
Logo of jax
jax
JAX是一个专为高性能数值计算和大规模机器学习设计的Python库。它利用XLA编译器实现加速器导向的数组计算和程序转换,支持自动微分、GPU和TPU加速。JAX提供jit、vmap和pmap等函数转换工具,让研究人员能够方便地表达复杂算法并获得出色性能,同时保持Python的灵活性。
Logo of autograd
autograd
Autograd是一个自动微分库,可对原生Python和NumPy代码进行微分。它支持反向模式和前向模式微分,能高效计算标量函数对数组参数的梯度。Autograd兼容Python的多数特性,如循环、条件语句、递归和闭包,并支持高阶导数。这个库主要应用于基于梯度的优化,在机器学习、神经网络和科学计算等领域有广泛应用。
Logo of Enzyme.jl
Enzyme.jl
Enzyme.jl为LLVM自动微分工具Enzyme提供Julia语言接口。它可对静态分析的LLVM代码进行高效自动微分,性能与顶级AD工具相当。通过简洁API实现Julia函数的自动微分,适用于科学计算和机器学习。该项目处于活跃开发阶段,鼓励用户提供反馈。
Logo of pennylane
pennylane
PennyLane是一个跨平台的Python库,专注于量子计算、量子机器学习和量子化学。集成了PyTorch、TensorFlow、JAX和NumPy等流行框架,支持量子硬件上的机器学习。支持即时代码编译和多种量子后端,提供自动微分功能,并包括量子模拟器和优化工具,便于快速原型设计。
Logo of DMFF
DMFF
DMFF是一个基于Jax的Python包,实现全可微分子力场模型。它简化力场参数化,支持点电荷和多极化模型,适用于水、生物大分子和有机聚合物系统。DMFF集成自动微分技术和AI优化,支持GPU加速,为分子系统研究和力场开发提供高效工具。
Logo of mlp
mlp
该项目基于Bengio等人2003年的论文,实现了多层感知器(MLP)作为n-gram语言模型。项目提供C、NumPy和PyTorch三种实现,展示了从底层操作到高级抽象的不同层次。通过对比,突出了PyTorch在Tensor处理、自动微分和深度学习层构建方面的优势。相比传统n-gram模型,此方法以较少参数实现更低验证损失,但训练成本较高。
Logo of pytorch-minimize
pytorch-minimize
pytorch-minimize是PyTorch生态系统中的多变量函数优化工具集。它集成了BFGS、共轭梯度法和牛顿法等多种算法,支持CPU和GPU运算。该库利用自动微分技术计算精确导数,无需手动提供梯度。此外,它还提供约束优化和非线性最小二乘问题的解决方案,为确定性优化任务提供自动梯度计算和GPU加速支持。
Logo of tensorcircuit
tensorcircuit
TensorCircuit是新一代量子软件框架,基于现代机器学习框架构建。它支持自动微分、即时编译、硬件加速等多项先进功能,可高效模拟量子-经典混合算法。该框架还能访问实际量子硬件,提供多种计算资源的混合部署方案,为量子计算研究和应用提供强大灵活的工具。