[ANN] ModelWrappers.jl - Flatten/Unflatten your Model Parameter in an Automatic Differentiation friendly way

This package exists for some time now, but it is finally in a mature enough state that I wanted to share it here too. ModelWrappers.jl allows you to work with Model parameter either as a NamedTuple or as Vector and makes switching between those two easy and fast.

There are other packages that offer similar capabilities, for instance ParameterHandling.jl, which I like a lot too. If I had to argue about differences, ModelWrappers.jl focuses on the unflatten(vector) -> NamedTuple part, whereas the ParameterHandling.jl focuses on flatten(NamedTuple) -> Vector part. This also initially led me to create this package.

A repository URL with more detailed documentation can be found here: GitHub - paschermayr/ModelWrappers.jl: ModelWrappers.jl is a utility package that makes it easier to work with Model parameters stated as (nested) NamedTuples.

4 Likes

There is also GitHub - JuliaNonconvex/DifferentiableFlatten.jl: Zygote-differentiable way of flattening and unflattening data structures.