TorchOpt

TorchOpt 是一个基于 PyTorch 构建的高效可微分优化库。 Torchopt 是

  • 全面性: TorchOpt 提供了三种微分模式 - 显式微分、隐式微分和零阶微分,用于处理不同的可微分优化情况。

  • 灵活: TorchOpt 提供了面向功能和面向对象的 API,以满足用户不同的偏好。用户可以使用类似 JAX 或 PyTorch 的风格来实现可微优化。

  • 高效: TorchOpt 提供了 (1) CPU/GPU 加速的可微分优化器 (2) 基于 RPC 的分布式训练框架 (3) 快速树操作,以大幅提高双层优化问题的训练效率。

安装

要求:

请按照https://pytorch.org上的说明首先在您的Python环境中安装PyTorch。 然后运行以下命令从PyPI安装TorchOpt:

pip install torchopt

你也可以从源代码构建共享库,使用:

git clone https://github.com/metaopt/torchopt.git
cd torchopt
pip3 install .

我们提供了一个conda环境配方来安装构建工具链,如cmakeg++nvcc。 您可以使用以下命令与conda / mamba一起创建一个新的隔离环境。

git clone https://github.com/metaopt/torchopt.git
cd torchopt

# You may need `CONDA_OVERRIDE_CUDA` if conda fails to detect the NVIDIA driver (e.g. in docker or WSL2)
CONDA_OVERRIDE_CUDA=12.1 conda env create --file conda-recipe-minimal.yaml

conda activate torchopt

团队

TorchOpt 是一个由

支持

如果您遇到问题,请通过在我们的问题跟踪器上提交问题来告知我们。

更新日志

参见 CHANGELOG.md

许可证

TorchOpt 遵循 Apache 2.0 许可证。

引用

如果您发现TorchOpt有用,请在您的出版物中引用它。

@article{JMLR:TorchOpt,
author  = {Jie Ren* and Xidong Feng* and Bo Liu* and Xuehai Pan* and Yao Fu and Luo Mai and Yaodong Yang},
title   = {TorchOpt: An Efficient Library for Differentiable Optimization},
journal = {Journal of Machine Learning Research},
year    = {2023},
volume  = {24},
number  = {367},
pages   = {1--14},
url     = {http://jmlr.org/papers/v24/23-0191.html}
}

索引和表格