Adjoint Algorithms

class AdjointTape[source]

Bases: funsor.interpretations.Interpretation

interpret(cls, *args)[source]
adjoint(sum_op, bin_op, root, targets=None, *, batch_vars={})[source]
forward_backward(sum_op, bin_op, expr, *, batch_vars=frozenset())[source]
adjoint(sum_op, bin_op, expr)[source]
adjoint_binary(adj_sum_op, adj_prod_op, out_adj, op, lhs, rhs)[source]
adjoint_reduce(adj_sum_op, adj_prod_op, out_adj, op, arg, reduced_vars)[source]
adjoint_contract_unary(adj_sum_op, adj_prod_op, out_adj, sum_op, prod_op, reduced_vars, arg)[source]
adjoint_contract_generic(adj_sum_op, adj_prod_op, out_adj, sum_op, prod_op, reduced_vars, terms)[source]
adjoint_contract(adj_sum_op, adj_prod_op, out_adj, sum_op, prod_op, reduced_vars, lhs, rhs)[source]
adjoint_cat(adj_sum_op, adj_prod_op, out_adj, name, parts, part_name)[source]
adjoint_subs(adj_sum_op, adj_prod_op, out_adj, arg, subs)[source]
adjoint_scatter(adj_sum_op, adj_prod_op, out_adj, op, subs, source, reduced_vars)[source]