In [1]:
import algopy
import numpy as np
import matplotlib.pyplot as plt
import scipy.optimize as op
%matplotlib inline
In [2]:
def func(x):
    """ A function that depends on a list of inputs x """
    x1 = x[0]
    x2 = x[1]
    return np.sin(x1) + x1*x2
# end def func
In [3]:
cg = algopy.CGraph()
In [4]:
cg.trace_on()
Out[4]:
<algopy.tracer.tracer.CGraph instance at 0x7fca3f25e560>
In [5]:
x = algopy.Function([0,0])
y = func(x)
In [6]:
cg.trace_off()
Out[6]:
<algopy.tracer.tracer.CGraph instance at 0x7fca3f25e560>
In [7]:
cg.independentFunctionList = [x]
In [8]:
cg.dependentFunctionList = [y]
In [9]:
cg.gradient([0,0])
Out[9]:
[array([1, 0])]
In [10]:
cg.plot("ad_algopy_compute_graph.png")

In [ ]: