Skip to content

Optimization Extension

To optimize our posterior, we use the Optimization.jl package. Optimization provides a global interface to several Julia optimizers. The base call most people should look at is comrade_opt which serves as the general purpose optimization algorithm.

To see what optimizers are available and what options are available, please see the Optimizations.jl docs.

Warning

To use use a gradient optimizer with AD, VLBIPosterior must be created with a specific admode specified. The admode can be a union of Nothing and <:EnzymeCore.Mode types. We recommend using Enzyme.set_runtime_activity(Enzyme.Reverse)

Example

julia
using Comrade
using Optimization
using OptimizationOptimJL
using Enzyme

# Some stuff to create a posterior object
post # of type Comrade.Posterior

xopt, sol = comrade_opt(post, LBFGS())