{"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/on-the-eigenvalues-of-global-covariance","title":"On the Eigenvalues of Global Covariance Pooling for Fine-grained Visual Recognition","arxiv_id":"2205.13282","date":"2022-05-26","proceeding":null,"authors":["Yue Song","Nicu Sebe","Wei Wang"],"abstract":"The Fine-Grained Visual Categorization (FGVC) is challenging because the subtle inter-class variations are difficult to be captured. One notable research line uses the Global Covariance Pooling (GCP) layer to learn powerful representations with second-order statistics, which can effectively model inter-class differences. In our previous conference paper, we show that truncating small eigenvalues of the GCP covariance can attain smoother gradient and improve the performance on large-scale benchmarks. However, on fine-grained datasets, truncating the small eigenvalues would make the model fail to converge. This observation contradicts the common assumption that the small eigenvalues merely correspond to the noisy and unimportant information. Consequently, ignoring them should have little influence on the performance. To diagnose this peculiar behavior, we propose two attribution methods whose visualizations demonstrate that the seemingly unimportant small eigenvalues are crucial as they are in charge of extracting the discriminative class-specific features. Inspired by this observation, we propose a network branch dedicated to magnifying the importance of small eigenvalues. Without introducing any additional parameters, this branch simply amplifies the small eigenvalues and achieves state-of-the-art performances of GCP methods on three fine-grained benchmarks. Furthermore, the performance is also competitive against other FGVC approaches on larger datasets. Code is available at \\href{https://github.com/KingJamesSong/DifferentiableSVD}{https://github.com/KingJamesSong/DifferentiableSVD}.","url_abs":"https://arxiv.org/abs/2205.13282v1","url_pdf":"https://arxiv.org/pdf/2205.13282v1.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":"on-the-eigenvalues-of-global-covariance","repo_url":"https://github.com/KingJamesSong/DifferentiableSVD","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"fine-grained-image-classification","task_name":"Fine-Grained Image Classification"},{"task_slug":"fine-grained-visual-categorization","task_name":"Fine-Grained Visual Categorization"},{"task_slug":"fine-grained-visual-recognition","task_name":"Fine-Grained Visual Recognition"},{"task_slug":"image-classification","task_name":"Image Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/fine-grained-image-classification-on-fgvc","task":"Fine-Grained Image Classification","dataset":"FGVC Aircraft","model":"SEB+EfficientNet-B5","rank_in_archive_order":23,"of":57,"metrics":{"Accuracy":"93.5"},"uses_additional_data":false},{"leaderboard":"/sota/fine-grained-image-classification-on-stanford","task":"Fine-Grained Image Classification","dataset":"Stanford Cars","model":"SEB+EfficientNet-B5","rank_in_archive_order":40,"of":83,"metrics":{"Accuracy":"94.6%"},"uses_additional_data":false},{"leaderboard":"/sota/fine-grained-image-classification-on-stanford-1","task":"Fine-Grained Image Classification","dataset":"Stanford Dogs","model":"SEB+EfficientNet-B5","rank_in_archive_order":7,"of":24,"metrics":{"Accuracy":"93.0%"},"uses_additional_data":false},{"leaderboard":"/sota/image-classification-on-inaturalist","task":"Image Classification","dataset":"iNaturalist","model":"SEB+EfficientNet-B5","rank_in_archive_order":12,"of":19,"metrics":{"Top 1 Accuracy":"72.3"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/2205.13282","atlas_url":"https://app.syntology.ai/?focus=2205.13282","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2205.13282"}},"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/KingJamesSong/DifferentiableSVD","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":9,"ran_draft_wrong":2,"unverified":6},"by_repo_kind":{"official":{"samples":17,"ran":11,"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":"2f5db20279adcab2","entry":"alexnet","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/alexnet.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/alexnet.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2f5db20279adcab2"}},{"code_sha256_prefix":"e1bba953865399c4","entry":"center_crop_with_flip","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"imagepreprocess.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/imagepreprocess.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e1bba953865399c4"}},{"code_sha256_prefix":"d9def42110729a85","entry":"conv1x1","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/resnet.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/resnet.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d9def42110729a85"}},{"code_sha256_prefix":"fac5364e2f53c6db","entry":"conv3x3","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/resnet.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/resnet.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":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fac5364e2f53c6db"}},{"code_sha256_prefix":"4983bf3da7e3bc95","entry":"densenet169","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/densenet.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/densenet.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4983bf3da7e3bc95"}},{"code_sha256_prefix":"c26ebe510580f5fa","entry":"densenet201","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/densenet.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/densenet.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c26ebe510580f5fa"}},{"code_sha256_prefix":"ac62432dc5134b0d","entry":"make_layers","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/mpncovvgg.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/mpncovvgg.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"ac62432dc5134b0d"}},{"code_sha256_prefix":"7d5e18eb2768dd94","entry":"preprocess_strategy","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"imagepreprocess.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/imagepreprocess.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7d5e18eb2768dd94"}},{"code_sha256_prefix":"bc9961dacb0c6e52","entry":"resnet18","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/resnet.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/resnet.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"bc9961dacb0c6e52"}},{"code_sha256_prefix":"9ec7dbb47bd1938b","entry":"vgg11","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/vgg.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/vgg.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9ec7dbb47bd1938b"}},{"code_sha256_prefix":"57ac34428a02311d","entry":"vgg11_bn","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/vgg.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/vgg.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"57ac34428a02311d"}},{"code_sha256_prefix":"e9ae7b09751b4912","entry":"decode_params","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"functions.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/functions.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e9ae7b09751b4912"}},{"code_sha256_prefix":"10d70cd9de88accd","entry":"densenet121","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/densenet.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/densenet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"10d70cd9de88accd"}},{"code_sha256_prefix":"b3aff4f65217439f","entry":"get_basemodel","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/base.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/base.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b3aff4f65217439f"}},{"code_sha256_prefix":"99f547d08bd82760","entry":"inception_v3","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/inception.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/inception.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"99f547d08bd82760"}},{"code_sha256_prefix":"821722d0a708c2b9","entry":"mpncovresnet101","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/mpncovresnet.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/mpncovresnet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"821722d0a708c2b9"}},{"code_sha256_prefix":"da56958c53b9740c","entry":"mpncovresnet50","repo":"KingJamesSong/DifferentiableSVD","repo_kind":"official","path":"src/network/mpncovresnet.py","file_url":"https://github.com/KingJamesSong/DifferentiableSVD/blob/HEAD/src/network/mpncovresnet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"da56958c53b9740c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}