Miscellaneous

DeepEquilibriumNetworks.DeepEquilibriumAdjointType
DeepEquilibriumAdjoint(reltol, abstol, maxiters; autojacvec=ZygoteVJP(),
                       linsolve=KrylovJL_GMRES(; rtol=reltol, atol=abstol,
                                               itmax=maxiters),
                       mode=:vanilla)

Creates DeepEquilibriumAdjoint (johnson2012notes) with sensible defaults.

Arguments

  • reltol: Relative tolerance.
  • abstol: Absolute tolerance.
  • maxiters: Maximum number of iterations.
  • autojacvec: Which backend to use for VJP.
  • linsolve: Linear Solver from LinearSolve.jl.
  • mode: Adjoint mode. Currently only :vanilla & :jfb are supported.
DeepEquilibriumNetworks.DeepEquilibriumSolutionType
DeepEquilibriumSolution(z_star, u₀, residual, jacobian_loss, nfe)

Stores the solution of a DeepEquilibriumNetwork and its variants.

Fields

  • z_star: Steady-State or the value reached due to maxiters
  • u0: Initial Condition
  • residual: Difference of the $z^*$ and $f(z^*, x)$
  • jacobian_loss: Jacobian Stabilization Loss (see individual networks to see how it can be computed).
  • nfe: Number of Function Evaluations

Accessors

We recommend not accessing the fields directly, rather use the functions equilibrium_solution, initial_condition, residual, jacobian_loss and number_of_function_evaluations.