NIFTy merge requestshttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests2019-10-17T12:38:54Zhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/333Operator spectra2019-10-17T12:38:54ZPhilipp Arrasparras@mpa-garching.mpg.deOperator spectrahttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/637Operator tests for more_samplers2021-06-08T09:32:23ZJakob KnollmuellerOperator tests for more_samplersPhilipp Arrasparras@mpa-garching.mpg.dePhilipp Arrasparras@mpa-garching.mpg.dehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/434Operator tree optimiser2020-05-20T09:00:26ZRouven LemmerzOperator tree optimiserIn order to prevent operators from calculating the same fields multiple times, one can set variables and input these into the operator tree.
The variables are set via a `FieldAdapter`. This has been used in !417.
An operator tree takes ...In order to prevent operators from calculating the same fields multiple times, one can set variables and input these into the operator tree.
The variables are set via a `FieldAdapter`. This has been used in !417.
An operator tree takes as an input a Field and outputs a Field. Cutting out equal subtrees and using their output as the new input for the pruned operator tree is one way to achieve more performance. This is done by `optimize_subtrees`.
There are some more improvements one has to make: `_OpChain` operators make the tree very complex and they have to be unpacked.
In `op2(op1) + op1` the first Summand has to be checked for whether it contains parts of the second Summand.
`optimize_node` does this, while `optimize_all_nodes` traverses the tree and applies it to (usually, see Problem 1) every node.
Some Problems:
1. Currently only searching for nodes at the end of operator chains, but
`optimize_all_nodes( (op + op)(op + op) )`
can happen
2. Subtrees are only replaced at node points, but one should also compare the vertices above and replace it
3. Only comparing by ids is done, one might add a cache to prevent same operators from going unnoticed (similar to the `DomainTuple` cache
4. `op = optimize_subtrees(optimize_all_nodes(op))` generates better results than
`op = optimize_all_nodes(optimize_subtrees(op))`.
As of now I'm unsure in how far changing the way the operator trees are stored could be improved to make this optimisation easier and/or faster.
@mtr @gedenhofhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/748Optimize_kl: add plotting kwargs2022-02-28T16:53:46ZPhilipp Arrasparras@mpa-garching.mpg.deOptimize_kl: add plotting kwargsMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/788Optimize kl cfg2022-09-23T11:18:17ZPhilipp Arrasparras@mpa-garching.mpg.deOptimize kl cfgPhilipp Arrasparras@mpa-garching.mpg.dePhilipp Arrasparras@mpa-garching.mpg.dehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/740Optimize KL: Correctly handle finished optimizations with resume=True2022-02-04T13:49:32ZPhilipp Arrasparras@mpa-garching.mpg.deOptimize KL: Correctly handle finished optimizations with resume=Truehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/714Optimize kl evolution2021-11-24T09:32:46ZPhilipp Arrasparras@mpa-garching.mpg.deOptimize kl evolutionFixes #339Fixes #339Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/775Optimizekl fix2022-05-09T08:55:59ZPhilipp Arrasparras@mpa-garching.mpg.deOptimizekl fixLukas PlatzLukas Platzhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/901optimize_kl: Fix default sample_mode2023-12-08T18:57:07ZGordian Edenhoferoptimize_kl: Fix default sample_modeGordian EdenhoferGordian Edenhoferhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/807optimize_kl: Fix encoding of minisanity output2022-11-03T09:47:07ZGordian Edenhoferoptimize_kl: Fix encoding of minisanity outputThis resolves an issue affecting at least one Windows users.This resolves an issue affecting at least one Windows users.Philipp FrankPhilipp Frankhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/743Optimize kl fixes2022-02-09T14:16:50ZPhilipp Arrasparras@mpa-garching.mpg.deOptimize kl fixesMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/896optimize_kl: Fix resume2023-12-07T16:16:24ZGordian Edenhoferoptimize_kl: Fix resumeGordian EdenhoferGordian Edenhoferhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/723Optimize kl makedirs2021-12-19T10:06:58ZPhilipp Arrasparras@mpa-garching.mpg.deOptimize kl makedirsMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/794Optimize kl optimizations2022-09-27T16:35:48ZPhilipp Arrasparras@mpa-garching.mpg.deOptimize kl optimizationsPhilipp Arrasparras@mpa-garching.mpg.dePhilipp Arrasparras@mpa-garching.mpg.dehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/777Optimize KL plotting tweaks2022-05-10T11:47:25ZPhilipp Arrasparras@mpa-garching.mpg.deOptimize KL plotting tweaksMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/716optimize_kl: sanity check of input and minor stuff2021-12-06T13:00:17ZPhilipp Arrasparras@mpa-garching.mpg.deoptimize_kl: sanity check of input and minor stuffMartin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/804Optimize KL: transitions are now functions2022-11-02T10:18:20ZPhilipp Arrasparras@mpa-garching.mpg.deOptimize KL: transitions are now functions@wmarg I have squashed and rebased your changes to this branch here. As soon as this is merged, we can delete `TransitionFunction` and `config_multifrequency_trans`.@wmarg I have squashed and rebased your changes to this branch here. As soon as this is merged, we can delete `TransitionFunction` and `config_multifrequency_trans`.Gordian EdenhoferGordian Edenhoferhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/495Order demos2020-05-21T21:53:50ZPhilipp Arrasparras@mpa-garching.mpg.deOrder demosLukas PlatzLukas Platzhttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/301parallelization for mirrored KL2019-08-16T05:52:39ZReimar H Leikeparallelization for mirrored KLThe KL with mirror_samples=True can now be parallelized by another factor of 2. Threads will reuse drawn samples to mirror them if possible.The KL with mirror_samples=True can now be parallelized by another factor of 2. Threads will reuse drawn samples to mirror them if possible.Martin ReineckeMartin Reineckehttps://gitlab.mpcdf.mpg.de/ift/nifty/-/merge_requests/604Parametric MGVI2021-06-14T09:33:41ZPhilipp Arrasparras@mpa-garching.mpg.deParametric MGVI- [x] Add demos/meanfield_inference.py to CI
- [x] Refactor variational_models.py
- [x] Refactor ParametricGaussianKL, can some code be shared with MetricGaussianKL (note changes introduced by !626)?
- [x] Write consistency checks and te...- [x] Add demos/meanfield_inference.py to CI
- [x] Refactor variational_models.py
- [x] Refactor ParametricGaussianKL, can some code be shared with MetricGaussianKL (note changes introduced by !626)?
- [x] Write consistency checks and tests for:
- [x] GaussianEntropy
- [x] LowerTriangularProjector
- [x] DiagonalSelector
- [x] Respacer
- [x] Multifield2Vector
- [x] Write tests for:
- [x] ADVIOptimizer
- [x] Resolve @mtr's point in `MultiField2Vector`, real check in `GaussianEntropy.apply` (@mtr)
- [x] Write documentation
- [x] More details for `MeanFieldVI`
- [x] More details for `FullCovarianceCI`
- [x] More details for `ADVIOptimizer` (@kjako)
- [x] Check all FIXMEs
- [x] Highlevel docu for new demo (see FIXME in file) (@kjako)
- [x] Docstring for `MeanFieldVI`
- [x] Docstring for `FullCovarianceVI`
- [x] Tweak in Docstring for `GaussianEntropy`, `LowerTriangularInserter`, `DiagonalSelector`, `Multifield2Vector` (@parras)
- [x] Metric for `GaussianEntropy`
- [x] (optional) Think about how to consistently integrate meanfield inference into visualized demo and do it (@pfrank)
- [x] Make samples in `StochasticEnergyAdapter` available (is ready but !643 needs to be merged)NIFTy7 releaseMartin ReineckeMartin Reinecke