INNER CODE UNIT · Python
make_vjp
HIPS/autograd · autograd/core.py:11
def make_vjp(fun, x):
start_node = VJPNode.new_root()
end_value, end_node = trace(start_node, fun, x)
if end_node is None:
def vjp(g):
return vspace(x).zeros()
else:
def vjp(g):
return backward_pass(g, end_node)
return vjp, end_value
def backward_pass(g, end_node):
outgrads = {end_node: (g, False)}
for node in toposort(end_node):