Closed michaeldeistler closed 1 year ago
Hello 👋 By default, all flows are fully autoregressive. However, there is a parameter to choose the number of passes for the inverse transformations. Setting passes=2
is equivalent to coupling. But you can choose anything between 2 and the number of features.
Got it, thanks for the clarification!
Got it, thanks for the clarification!
Do you think this should be better explained in the documentation?
Yes, I think this would be helpful. Maybe either add an example or extend the docstring like:
passes: The number of sequential passes for the inverse transformation. If None, use the number of features (making the network fully autoregressive). `passes=2` corresponds to coupling layers.
I had Ctrl+F
ed the API docs for the word coupling
and could not find anything ;)
It might also be worth adding to the NSF
docstring sth like:
Note that, by default, the conditioner is fully autoregressive. Coupling layers (as used in Durkan et al. 2020) can be used by setting `passes=2`.
The proposed changes have been added in the last release 🥳
Description
I'm a bit confused about the
NSF
module of the package. Does it use autoregressive transforms or coupling layers (as in the original NSF paper)? TheNSF
are signficantly faster atlog_prob
, so I'm guessing it is autoregressive layers. If so, are coupling layers currently implemented in the toolbox?Reproduce
Thanks a lot for your help!