InvertibleNetworks.jl: A Julia package for scalable normalizing flows
This package addresses memory constraints for researchers and practitioners using normalizing flows in high-dimensional applications like seismic and medical imaging, though it is incremental as it builds on existing normalizing flow methods.
The authors tackled the problem of memory inefficiency in normalizing flow implementations by developing InvertibleNetworks.jl, a Julia package that leverages invertibility to reduce memory usage during backpropagation, achieving significant memory savings compared to existing packages.
InvertibleNetworks.jl is a Julia package designed for the scalable implementation of normalizing flows, a method for density estimation and sampling in high-dimensional distributions. This package excels in memory efficiency by leveraging the inherent invertibility of normalizing flows, which significantly reduces memory requirements during backpropagation compared to existing normalizing flow packages that rely on automatic differentiation frameworks. InvertibleNetworks.jl has been adapted for diverse applications, including seismic imaging, medical imaging, and CO2 monitoring, demonstrating its effectiveness in learning high-dimensional distributions.