皮耶格拉德
autograd的python实现。 它自动区分用python编写的任意函数。
例子
假设我们有函数f并且想要找到它的梯度f_prime 。
from PieGrad import grad
def f ( x ):
return 2 * ( x ** 3 ) + 1
f_prime = grad ( f ) # return gradient of 6 * x ** 2
f_prime ( 2 ) # prints 24
爸爸怎么样?
piegrad做一些叫做“源代码转换”的事情。 通过(由指数如递减指数1和乘法系数中)施加的规则的特定集合,piegrad转换f “s”的AST以对应于其梯度的AST。
从根开始,我们使用dfs递归遍历ast。
不是叶的任何节点都是二进制操作( ast.binop )。 每个ast.binop都可以用(left, op, righ