Optimization
Come back later!
using AbstractTrees, InferOpt, InteractiveUtils
AbstractTrees.children(x::Type) = subtypes(x)
print_tree(InferOpt.AbstractOptimizationLayer)
AbstractOptimizationLayer
├─ AbstractRegularized
│ ├─ AbstractRegularizedGeneralizedMaximizer
│ ├─ RegularizedFrankWolfe
│ ├─ SoftArgmax
│ ├─ SoftRank
│ └─ SparseArgmax
├─ IdentityRelaxation
├─ AbstractPerturbed
│ ├─ PerturbedAdditive
│ ├─ PerturbedMultiplicative
│ └─ PerturbedOracle
├─ Interpolation
└─ SoftSort