{"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/vivit-curvature-access-through-the","title":"ViViT: Curvature access through the generalized Gauss-Newton's low-rank structure","arxiv_id":"2106.02624","date":"2021-06-04","proceeding":null,"authors":["Felix Dangel","Lukas Tatzel","Philipp Hennig"],"abstract":"Curvature in form of the Hessian or its generalized Gauss-Newton (GGN) approximation is valuable for algorithms that rely on a local model for the loss to train, compress, or explain deep networks. Existing methods based on implicit multiplication via automatic differentiation or Kronecker-factored block diagonal approximations do not consider noise in the mini-batch. We present ViViT, a curvature model that leverages the GGN's low-rank structure without further approximations. It allows for efficient computation of eigenvalues, eigenvectors, as well as per-sample first- and second-order directional derivatives. The representation is computed in parallel with gradients in one backward pass and offers a fine-grained cost-accuracy trade-off, which allows it to scale. We demonstrate this by conducting performance benchmarks and substantiate ViViT's usefulness by studying the impact of noise on the GGN's structural properties during neural network training.","url_abs":"https://arxiv.org/abs/2106.02624v2","url_pdf":"https://arxiv.org/pdf/2106.02624v2.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":"vivit-curvature-access-through-the","repo_url":"https://github.com/jbzre7bp/vivit","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"vivit-curvature-access-through-the","repo_url":"https://github.com/pwlo3k46/vivit","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"vivit-curvature-access-through-the","repo_url":"https://github.com/zv5dmjq5/vivit","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"vivit-curvature-access-through-the","repo_url":"https://github.com/MindCode-4/code-5/tree/main/vivit","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null},{"paper_slug":"vivit-curvature-access-through-the","repo_url":"https://github.com/pwc-1/Paper-9/tree/main/5/vivit","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"mindspore","reach":null}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2106.02624","atlas_url":"https://app.syntology.ai/?focus=2106.02624","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.02624"}},"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/jbzre7bp/vivit","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pwc-1/Paper-9/tree/main/5/vivit","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MindCode-4/code-5/tree/main/vivit","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zv5dmjq5/vivit","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/pwlo3k46/vivit","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":15},"by_repo_kind":{"official":{"samples":15,"ran":0,"repositories":3}},"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":"8bcff92887677b71","entry":"approximate_boundaries","repo":"jbzre7bp/vivit","repo_kind":"official","path":"vivit/hessianfree/lanczos.py","file_url":"https://github.com/jbzre7bp/vivit/blob/HEAD/vivit/hessianfree/lanczos.py","link_basis":"first_harvest_node","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":"8bcff92887677b71"}},{"code_sha256_prefix":"e4d94e72d53429eb","entry":"approximate_boundaries_abs","repo":"jbzre7bp/vivit","repo_kind":"official","path":"vivit/hessianfree/lanczos.py","file_url":"https://github.com/jbzre7bp/vivit/blob/HEAD/vivit/hessianfree/lanczos.py","link_basis":"first_harvest_node","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":"e4d94e72d53429eb"}},{"code_sha256_prefix":"c38616bc34dad46d","entry":"fast_lanczos","repo":"jbzre7bp/vivit","repo_kind":"official","path":"vivit/hessianfree/lanczos.py","file_url":"https://github.com/jbzre7bp/vivit/blob/HEAD/vivit/hessianfree/lanczos.py","link_basis":"first_harvest_node","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":"c38616bc34dad46d"}},{"code_sha256_prefix":"3b29da7c5bb6f1c4","entry":"get_letters","repo":"pwlo3k46/vivit","repo_kind":"official","path":"vivit/utils/gram.py","file_url":"https://github.com/pwlo3k46/vivit/blob/HEAD/vivit/utils/gram.py","link_basis":"first_harvest_node","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":"3b29da7c5bb6f1c4"}},{"code_sha256_prefix":"b4944136575f91af","entry":"is_subset","repo":"pwlo3k46/vivit","repo_kind":"official","path":"vivit/utils/subsampling.py","file_url":"https://github.com/pwlo3k46/vivit/blob/HEAD/vivit/utils/subsampling.py","link_basis":"first_harvest_node","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":"b4944136575f91af"}},{"code_sha256_prefix":"e157c276ee749806","entry":"make_top_k_criterion","repo":"jbzre7bp/vivit","repo_kind":"official","path":"exp/utils/vivit.py","file_url":"https://github.com/jbzre7bp/vivit/blob/HEAD/exp/utils/vivit.py","link_basis":"first_harvest_node","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":"e157c276ee749806"}},{"code_sha256_prefix":"26c378565ba49153","entry":"merge_subsamplings","repo":"pwlo3k46/vivit","repo_kind":"official","path":"vivit/utils/subsampling.py","file_url":"https://github.com/pwlo3k46/vivit/blob/HEAD/vivit/utils/subsampling.py","link_basis":"first_harvest_node","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":"26c378565ba49153"}},{"code_sha256_prefix":"0049e73ca8f9bee3","entry":"pairwise2_dot","repo":"pwlo3k46/vivit","repo_kind":"official","path":"vivit/utils/gram.py","file_url":"https://github.com/pwlo3k46/vivit/blob/HEAD/vivit/utils/gram.py","link_basis":"first_harvest_node","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":"0049e73ca8f9bee3"}},{"code_sha256_prefix":"42d68d5c80b5db4e","entry":"pairwise_dot","repo":"pwlo3k46/vivit","repo_kind":"official","path":"vivit/utils/gram.py","file_url":"https://github.com/pwlo3k46/vivit/blob/HEAD/vivit/utils/gram.py","link_basis":"first_harvest_node","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":"42d68d5c80b5db4e"}},{"code_sha256_prefix":"2e09290d345742fd","entry":"sample_output_mapping","repo":"pwlo3k46/vivit","repo_kind":"official","path":"vivit/utils/subsampling.py","file_url":"https://github.com/pwlo3k46/vivit/blob/HEAD/vivit/utils/subsampling.py","link_basis":"first_harvest_node","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":"2e09290d345742fd"}},{"code_sha256_prefix":"facdac15f2c804c0","entry":"shift_diag","repo":"pwlo3k46/vivit","repo_kind":"official","path":"vivit/utils/eig.py","file_url":"https://github.com/pwlo3k46/vivit/blob/HEAD/vivit/utils/eig.py","link_basis":"first_harvest_node","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":"facdac15f2c804c0"}},{"code_sha256_prefix":"e044b617cfd2c895","entry":"stable_symeig","repo":"pwlo3k46/vivit","repo_kind":"official","path":"vivit/utils/eig.py","file_url":"https://github.com/pwlo3k46/vivit/blob/HEAD/vivit/utils/eig.py","link_basis":"first_harvest_node","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":"e044b617cfd2c895"}},{"code_sha256_prefix":"7cf1a1d2a94fd903","entry":"stable_symeig","repo":"zv5dmjq5/vivit","repo_kind":"official","path":"vivit/utils/eig.py","file_url":"https://github.com/zv5dmjq5/vivit/blob/HEAD/vivit/utils/eig.py","link_basis":"first_harvest_node","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":"7cf1a1d2a94fd903"}},{"code_sha256_prefix":"6667b9a2a60b7fe1","entry":"symeig_psd","repo":"pwlo3k46/vivit","repo_kind":"official","path":"vivit/utils/eig.py","file_url":"https://github.com/pwlo3k46/vivit/blob/HEAD/vivit/utils/eig.py","link_basis":"first_harvest_node","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":"6667b9a2a60b7fe1"}},{"code_sha256_prefix":"484f66d87c0c4751","entry":"symeig_psd","repo":"zv5dmjq5/vivit","repo_kind":"official","path":"vivit/utils/eig.py","file_url":"https://github.com/zv5dmjq5/vivit/blob/HEAD/vivit/utils/eig.py","link_basis":"first_harvest_node","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":"484f66d87c0c4751"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}