Class SymbolicGradient

java.lang.Object
org.tensorflow.op.RawOp
org.tensorflow.op.train.SymbolicGradient
All Implemented Interfaces:
Iterable<Operand<TType>>, Op

@Operator(group="train") public final class SymbolicGradient extends RawOp implements Iterable<Operand<TType>>
Computes the gradient function for function f via backpropagation.
  • Field Details

  • Constructor Details

    • SymbolicGradient

      public SymbolicGradient(Operation operation)
  • Method Details

    • create

      @Endpoint(describeByClass=true) public static SymbolicGradient create(Scope scope, Iterable<Operand<?>> input, List<Class<? extends TType>> Tout, ConcreteFunction f)
      Factory method to create a class wrapping a new SymbolicGradient operation.
      Parameters:
      scope - current scope
      input - a list of input tensors of size N + M;
      Tout - the type list for the input list.
      f - The function we want to compute the gradient for.

      The function 'f' must be a numerical function which takes N inputs and produces M outputs. Its gradient function 'g', which is computed by this SymbolicGradient op is a function taking N + M inputs and produces N outputs.

      I.e. if we have (y1, y2, ..., y_M) = f(x1, x2, ..., x_N), then, g is (dL/dx1, dL/dx2, ..., dL/dx_N) = g(x1, x2, ..., x_N, dL/dy1, dL/dy2, ..., dL/dy_M),

      where L is a scalar-value function of (x1, x2, ..., xN) (e.g., the loss function). dL/dx_i is the partial derivative of L with respect to x_i.

      (Needs some math expert to say the comment above better.)

      Returns:
      a new instance of SymbolicGradient
    • output

      public List<Output<?>> output()
      Gets output. a list of output tensors of size N;
      Returns:
      output.
    • iterator

      public Iterator<Operand<TType>> iterator()
      Specified by:
      iterator in interface Iterable<Operand<TType>>