Function autograd::ops::jacobians [] [src]

pub fn jacobians(
    y: &Tensor,
    xs: &[&Tensor],
    objective_len: usize
) -> Vec<Tensor>

Computes jacobians for variables.

Arguments

  • y - Target of differentiation.
  • xs - Tensors with which differentiate ys.
  • y_size - (flattened) size of y

Returns

Jacobians for each variable. Each one is matrix of shape (y_size, x size).

extern crate autograd as ag;

let mut ctx = ag::Context::new();
let ref a = ag::variable(ag::ndarray_ext::standard_normal(&[4, 2]), &mut ctx);
let ref b = ag::variable(ag::ndarray_ext::standard_normal(&[2, 3]), &mut ctx);
let ref c = ag::matmul(a, b);
let ref j = ag::jacobians(c, &[a, b], 4*3);

assert_eq!(j[0].eval(&mut ctx).shape(), &[4*3, 4*2]);
assert_eq!(j[1].eval(&mut ctx).shape(), &[4*3, 2*3]);