{"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/how-to-train-your-neural-ode","title":"How to train your neural ODE: the world of Jacobian and kinetic regularization","arxiv_id":"2002.02798","date":"2020-02-07","proceeding":"ICML 2020 1","authors":["Chris Finlay","Jörn-Henrik Jacobsen","Levon Nurbekyan","Adam M. Oberman"],"abstract":"Training neural ODEs on large datasets has not been tractable due to the necessity of allowing the adaptive numerical ODE solver to refine its step size to very small values. In practice this leads to dynamics equivalent to many hundreds or even thousands of layers. In this paper, we overcome this apparent difficulty by introducing a theoretically-grounded combination of both optimal transport and stability regularizations which encourage neural ODEs to prefer simpler dynamics out of all the dynamics that solve a problem well. Simpler dynamics lead to faster convergence and to fewer discretizations of the solver, considerably decreasing wall-clock time without loss in performance. Our approach allows us to train neural ODE-based generative models to the same performance as the unregularized dynamics, with significant reductions in training time. This brings neural ODEs closer to practical relevance in large-scale applications.","url_abs":"https://arxiv.org/abs/2002.02798v3","url_pdf":"https://arxiv.org/pdf/2002.02798v3.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":"how-to-train-your-neural-ode","repo_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"how-to-train-your-neural-ode","repo_url":"https://github.com/cfinlay/ffjord-rnode","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/density-estimation-on-cifar-10","task":"Density Estimation","dataset":"CIFAR-10","model":"RNODE","rank_in_archive_order":11,"of":15,"metrics":{"NLL (bits/dim)":"3.38"},"uses_additional_data":false},{"leaderboard":"/sota/density-estimation-on-celeba-hq-256x256","task":"Density Estimation","dataset":"CelebA-HQ 256x256","model":"RNODE","rank_in_archive_order":1,"of":1,"metrics":{"Log-likelihood":"1.04"},"uses_additional_data":false},{"leaderboard":"/sota/density-estimation-on-imagenet-64x64","task":"Density Estimation","dataset":"ImageNet 64x64","model":"RNODE","rank_in_archive_order":1,"of":1,"metrics":{"Log-likelihood":"3.83"},"uses_additional_data":false},{"leaderboard":"/sota/density-estimation-on-mnist","task":"Density Estimation","dataset":"MNIST","model":"RNODE","rank_in_archive_order":2,"of":6,"metrics":{"NLL (bits/dim)":"0.97"},"uses_additional_data":false},{"leaderboard":"/sota/image-generation-on-celeba-hq-256x256","task":"Image Generation","dataset":"CelebA-HQ 256x256","model":"RNODE","rank_in_archive_order":18,"of":19,"metrics":{"bits/dimension":"1.04"},"uses_additional_data":false},{"leaderboard":"/sota/image-generation-on-mnist","task":"Image Generation","dataset":"MNIST","model":"RNODE","rank_in_archive_order":3,"of":15,"metrics":{"bits/dimension":"0.97"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2002.02798","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2002.02798"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+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/D-hash-code/ffjord-rnode-finalweek-mnist","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cfinlay/ffjord-rnode","reach":null}],"summary":{"ran":1,"ran_honours":1,"ran_draft_wrong":2,"unverified":11},"by_repo_kind":{"listed":{"samples":15,"ran":4,"repositories":2}},"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":"2a06912ee47c2847","entry":"RegularizedODEfunc","repo":"cfinlay/ffjord-rnode","repo_kind":"listed","path":"lib/layers/wrappers/cnf_regularization.py","file_url":"https://github.com/cfinlay/ffjord-rnode/blob/HEAD/lib/layers/wrappers/cnf_regularization.py","link_basis":"first_harvest_node","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":"2a06912ee47c2847"}},{"code_sha256_prefix":"f6b944f50d3f15ae","entry":"count_parameters","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"train_misc.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/train_misc.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":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"lib/utils.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/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":"2dc23e3f121c6a38","entry":"standard_normal_logprob","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"train_misc.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/train_misc.py","link_basis":"harvester_set","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":"13a2192e17a601cb","entry":"add_noise","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"trainCNFGAN.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/trainCNFGAN.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":"13a2192e17a601cb"}},{"code_sha256_prefix":"6e49bcc681db6ead","entry":"add_noise","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"validate.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/validate.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":"6e49bcc681db6ead"}},{"code_sha256_prefix":"1bfb103fe91e335d","entry":"build_net","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"lib/layers/coupling.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/lib/layers/coupling.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":"1bfb103fe91e335d"}},{"code_sha256_prefix":"58bb14039809fdf3","entry":"get_data_loader","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"lib/utils2.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/lib/utils2.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":"58bb14039809fdf3"}},{"code_sha256_prefix":"005ab5343cd3459c","entry":"isnan","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"lib/utils.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/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"}},{"code_sha256_prefix":"bc02f37ed2da5d95","entry":"logsumexp","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"lib/utils.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/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":"bc02f37ed2da5d95"}},{"code_sha256_prefix":"be51985b302891b6","entry":"reduce_tensor","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"dist_utils.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/dist_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":"be51985b302891b6"}},{"code_sha256_prefix":"3a7bef4c55086f50","entry":"sample_mask","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"lib/layers/coupling.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/lib/layers/coupling.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":"3a7bef4c55086f50"}},{"code_sha256_prefix":"eff72070f790a5fe","entry":"shift","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"trainCNFGAN.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/trainCNFGAN.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":"eff72070f790a5fe"}},{"code_sha256_prefix":"0009ce40d4f5ff19","entry":"sum_tensor","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"dist_utils.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/dist_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":"0009ce40d4f5ff19"}},{"code_sha256_prefix":"4df0e0f1164421a1","entry":"unshift","repo":"D-hash-code/ffjord-rnode-finalweek-mnist","repo_kind":"listed","path":"trainCNFGAN.py","file_url":"https://github.com/D-hash-code/ffjord-rnode-finalweek-mnist/blob/HEAD/trainCNFGAN.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":"4df0e0f1164421a1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}