使用自动微分进行优化
项目描述
# autoptim: 自动微分 + 优化
你有新的机器学习模型想要优化,但又不想费心计算梯度吗?Autoptim就是为你准备的。
## 简短介绍
Autoptim是一个小型的Python包,它将`autograd`自动微分与`scipy.optimize.minimize`结合起来。
梯度是在底层使用自动微分计算的;用户只需提供目标函数
```python
import numpy as np
from autoptim import minimize
def rosenbrock(x)
return (1 - x[0]) ** 2 + 100 * (x[1] - x[0] ** 2) ** 2
x0 = np.zeros(2)
x_min, _ = minimize(rosenbrock, x0)
print(x_min)
>>> [0.99999913 0.99999825]
```
它具有以下功能
- **与Numpy的自然接口**:目标函数使用标准Numpy编写。`autoptim.minimize`的输入/输出是Numpy数组。
- **智能输入处理**:`scipy.optimize.minimize`仅用于处理一维数组作为输入。在`autoptim`中,变量可以是多维数组或数组列表。
- **预条件**:预条件是通过变量变换来加速最小化的一种简单方法。`autoptim`使预条件变得简单直接。
### 免责声明
此包旨在尽可能易于使用。因此,在最小化速度上做出了一些妥协。
## 安装
要安装,请使用`pip`
```
pip install autoptim
```
## 依赖关系
- numpy>=1.12
- scipy>=0.18.0
- autograd >= 1.2
## 示例
可以在`autoptim/tutorials`中找到几个示例
你有新的机器学习模型想要优化,但又不想费心计算梯度吗?Autoptim就是为你准备的。
## 简短介绍
Autoptim是一个小型的Python包,它将`autograd`自动微分与`scipy.optimize.minimize`结合起来。
梯度是在底层使用自动微分计算的;用户只需提供目标函数
```python
import numpy as np
from autoptim import minimize
def rosenbrock(x)
return (1 - x[0]) ** 2 + 100 * (x[1] - x[0] ** 2) ** 2
x0 = np.zeros(2)
x_min, _ = minimize(rosenbrock, x0)
print(x_min)
>>> [0.99999913 0.99999825]
```
它具有以下功能
- **与Numpy的自然接口**:目标函数使用标准Numpy编写。`autoptim.minimize`的输入/输出是Numpy数组。
- **智能输入处理**:`scipy.optimize.minimize`仅用于处理一维数组作为输入。在`autoptim`中,变量可以是多维数组或数组列表。
- **预条件**:预条件是通过变量变换来加速最小化的一种简单方法。`autoptim`使预条件变得简单直接。
### 免责声明
此包旨在尽可能易于使用。因此,在最小化速度上做出了一些妥协。
## 安装
要安装,请使用`pip`
```
pip install autoptim
```
## 依赖关系
- numpy>=1.12
- scipy>=0.18.0
- autograd >= 1.2
## 示例
可以在`autoptim/tutorials`中找到几个示例
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源代码分布
本发布版本没有提供源代码分布文件。请参阅有关 生成分布存档 的教程。
构建分布
autoptim-0.3-py3-none-any.whl (5.7 kB 查看哈希值)
关闭
autoptim-0.3-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f4492bd4666c62f1913b0eb5a68f235d2ac574d9cc98b0f428198184324af8a4 |
|
MD5 | 612678dc2703af0cd00356bccdba6b75 |
|
BLAKE2b-256 | 8a2cf616fc7988db7883eeb29818e13a8508b9c2567bf1cf902b3839dc573438 |