{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/discrete-flows-invertible-generative-models","title":"Discrete Flows: Invertible Generative Models of Discrete Data","arxiv_id":"1905.10347","date":"2019-05-24","proceeding":"NeurIPS 2019 12","authors":["Dustin Tran","Keyon Vafa","Kumar Krishna Agrawal","Laurent Dinh","Ben Poole"],"abstract":"While normalizing flows have led to significant advances in modeling high-dimensional continuous distributions, their applicability to discrete distributions remains unknown. In this paper, we show that flows can in fact be extended to discrete events---and under a simple change-of-variables formula not requiring log-determinant-Jacobian computations. Discrete flows have numerous applications. We consider two flow architectures: discrete autoregressive flows that enable bidirectionality, allowing, for example, tokens in text to depend on both left-to-right and right-to-left contexts in an exact language model; and discrete bipartite flows that enable efficient non-autoregressive generation as in RealNVP. Empirically, we find that discrete autoregressive flows outperform autoregressive baselines on synthetic discrete distributions, an addition task, and Potts models; and bipartite flows can obtain competitive performance with autoregressive baselines on character-level language modeling for Penn Tree Bank and text8.","url_abs":"https://arxiv.org/abs/1905.10347v1","url_pdf":"https://arxiv.org/pdf/1905.10347v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"discrete-flows-invertible-generative-models","repo_url":"https://github.com/google/edward2","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"tf","reach":{"status":"unanswered"}},{"paper_slug":"discrete-flows-invertible-generative-models","repo_url":"https://github.com/TrentBrick/PyTorchDiscreteFlows","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"language-modeling","task_name":"Language Modeling"},{"task_slug":"language-modelling","task_name":"Language Modelling"}],"methods":[{"method_slug":"affine-coupling","method_name":"Affine Coupling"},{"method_slug":"batch-normalization","method_name":"Batch Normalization"},{"method_slug":"normalizing-flows","method_name":"Normalizing Flows"},{"method_slug":"realnvp","method_name":"RealNVP"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/language-modelling-on-penn-treebank-character","task":"Language Modelling","dataset":"Penn Treebank (Character Level)","model":"Bipartite Flow","rank_in_archive_order":20,"of":20,"metrics":{"Bit per Character (BPC)":"1.38"},"uses_additional_data":false},{"leaderboard":"/sota/language-modelling-on-text8","task":"Language Modelling","dataset":"Text8","model":"Bipartite flows (8 flows)","rank_in_archive_order":16,"of":24,"metrics":{"Bit per Character (BPC)":"1.23"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1905.10347","mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}