双数自动微分
AutoDiff-group3的Python项目详细描述
自动差异
开发人员:威尔•克莱博、布鲁斯•熊、艾琳•威廉姆斯
第3组,CS207 2018年秋季
简介
autodiff查找函数的导数(以达到机器精度!)同时它找到函数的值。
import autodiff.autodiff as ad
x = ad.DualNumber('x', 2)
y = ad.DualNumber('y', 3)
out = x/y
out.value # 0.66666, the value of 2 divided by 3
out.derivatives #{x: 1/3, y: -2/(3**2)}, the gradient of x/y at (2,3)
autodiff适用于具有任意数量输入的函数和表达式。只需将这些函数传递给dualnumbers而不是常规的int/float(并将任何数学模块函数升级为它们的autodiff等价函数)
安装
autodiff位于PyPi上,可以使用命令pip install AutoDiff-group3
安装。要导入,请使用import autodiff.autodiff as ad
。
也可以通过从github下载来安装autodiff。因为它没有依赖关系,所以您可以简单地将repo文件夹添加到python路径(import sys sys.path.insert(0, '/path_to_repo/')
)中,然后正常导入。
示例
使用autodiff非常简单:
import autodiff.autodiff as ad
def f(a,b):
return 3*a/b*ad.sin(a*b+2)
out = f(ad.DualNumber('x',2),ad.DualNumber('y',3))
print(out.value)
1.978716
print(out.derivatives['x'])
0.116358
print(out.derivatives['y'])
-1.24157
# get the value and derifative of f at a different point
out = f(ad.DualNumber('x',0),ad.DualNumber('y',1))
python 3笔记本包含了更深入的示例和用法,HERE
文档
单击HERE获取完整文档。
依赖关系
单击HERE获取依赖项的完整列表。
许可证
单击HERE查看我们的麻省理工学院许可证。