{"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/residual-flows-for-invertible-generative","title":"Residual Flows for Invertible Generative Modeling","arxiv_id":"1906.02735","date":"2019-06-06","proceeding":"NeurIPS 2019 12","authors":["Ricky T. Q. Chen","Jens Behrmann","David Duvenaud","Jörn-Henrik Jacobsen"],"abstract":"Flow-based generative models parameterize probability distributions through an invertible transformation and can be trained by maximum likelihood. Invertible residual networks provide a flexible family of transformations where only Lipschitz conditions rather than strict architectural constraints are needed for enforcing invertibility. However, prior work trained invertible residual networks for density estimation by relying on biased log-density estimates whose bias increased with the network's expressiveness. We give a tractable unbiased estimate of the log density using a \"Russian roulette\" estimator, and reduce the memory required during training by using an alternative infinite series for the gradient. Furthermore, we improve invertible residual blocks by proposing the use of activation functions that avoid derivative saturation and generalizing the Lipschitz condition to induced mixed norms. The resulting approach, called Residual Flows, achieves state-of-the-art performance on density estimation amongst flow-based models, and outperforms networks that use coupling blocks at joint generative and discriminative modeling.","url_abs":"https://arxiv.org/abs/1906.02735v6","url_pdf":"https://arxiv.org/pdf/1906.02735v6.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":"residual-flows-for-invertible-generative","repo_url":"https://github.com/rtqichen/residual-flows","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"residual-flows-for-invertible-generative","repo_url":"https://github.com/eyalbetzalel/residual-flows","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"residual-flows-for-invertible-generative","repo_url":"https://github.com/thu-ml/implicit-normalizing-flows","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}},{"paper_slug":"residual-flows-for-invertible-generative","repo_url":"https://github.com/yperugachidiaz/invertible_densenets","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"density-estimation","task_name":"Density Estimation"},{"task_slug":"image-generation","task_name":"Image Generation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-generation-on-cifar-10","task":"Image Generation","dataset":"CIFAR-10","model":"Residual Flow","rank_in_archive_order":75,"of":78,"metrics":{"FID":"46.37"},"uses_additional_data":false},{"leaderboard":"/sota/image-generation-on-celeba-256x256","task":"Image Generation","dataset":"CelebA 256x256","model":"Residual Flow","rank_in_archive_order":9,"of":17,"metrics":{"bpd":"0.992"},"uses_additional_data":false},{"leaderboard":"/sota/image-generation-on-imagenet-32x32","task":"Image Generation","dataset":"ImageNet 32x32","model":"Residual Flow","rank_in_archive_order":32,"of":35,"metrics":{"bpd":"4.01"},"uses_additional_data":false},{"leaderboard":"/sota/image-generation-on-imagenet-64x64","task":"Image Generation","dataset":"ImageNet 64x64","model":"Residual Flow","rank_in_archive_order":60,"of":65,"metrics":{"Bits per dim":"3.757"},"uses_additional_data":false},{"leaderboard":"/sota/image-generation-on-mnist","task":"Image Generation","dataset":"MNIST","model":"Residual Flow","rank_in_archive_order":2,"of":15,"metrics":{"bits/dimension":"0.97"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1906.02735","atlas_url":"https://app.syntology.ai/?focus=1906.02735","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1906.02735"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/rtqichen/residual-flows","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/thu-ml/implicit-normalizing-flows","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/eyalbetzalel/residual-flows","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yperugachidiaz/invertible_densenets","reach":null}],"summary":{"ran_draft_wrong":4,"ran_honours":1,"ran":2,"unverified":1},"by_repo_kind":{"listed":{"samples":8,"ran":7,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"3e0a8dc623475d8e","entry":"geometric_logprob","repo":"eyalbetzalel/residual-flows","repo_kind":"listed","path":"qualitative_samples.py","file_url":"https://github.com/eyalbetzalel/residual-flows/blob/HEAD/qualitative_samples.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":2,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3e0a8dc623475d8e"}},{"code_sha256_prefix":"f6b944f50d3f15ae","entry":"count_parameters","repo":"eyalbetzalel/residual-flows","repo_kind":"listed","path":"train_toy.py","file_url":"https://github.com/eyalbetzalel/residual-flows/blob/HEAD/train_toy.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f6b944f50d3f15ae"}},{"code_sha256_prefix":"416b44e8cb9fc048","entry":"get_logger","repo":"eyalbetzalel/residual-flows","repo_kind":"listed","path":"lib/utils.py","file_url":"https://github.com/eyalbetzalel/residual-flows/blob/HEAD/lib/utils.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"416b44e8cb9fc048"}},{"code_sha256_prefix":"804bfac81567c706","entry":"inf_train_gen","repo":"eyalbetzalel/residual-flows","repo_kind":"listed","path":"lib/toy_data.py","file_url":"https://github.com/eyalbetzalel/residual-flows/blob/HEAD/lib/toy_data.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"804bfac81567c706"}},{"code_sha256_prefix":"bc02f37ed2da5d95","entry":"logsumexp","repo":"eyalbetzalel/residual-flows","repo_kind":"listed","path":"lib/utils.py","file_url":"https://github.com/eyalbetzalel/residual-flows/blob/HEAD/lib/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bc02f37ed2da5d95"}},{"code_sha256_prefix":"2dc23e3f121c6a38","entry":"standard_normal_logprob","repo":"eyalbetzalel/residual-flows","repo_kind":"listed","path":"qualitative_samples.py","file_url":"https://github.com/eyalbetzalel/residual-flows/blob/HEAD/qualitative_samples.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2dc23e3f121c6a38"}},{"code_sha256_prefix":"2168d015a2e457cb","entry":"standard_normal_sample","repo":"eyalbetzalel/residual-flows","repo_kind":"listed","path":"qualitative_samples.py","file_url":"https://github.com/eyalbetzalel/residual-flows/blob/HEAD/qualitative_samples.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2168d015a2e457cb"}},{"code_sha256_prefix":"005ab5343cd3459c","entry":"isnan","repo":"eyalbetzalel/residual-flows","repo_kind":"listed","path":"lib/utils.py","file_url":"https://github.com/eyalbetzalel/residual-flows/blob/HEAD/lib/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"005ab5343cd3459c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}