{"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/detecting-out-of-distribution-examples-with","title":"Detecting Out-of-Distribution Examples with In-distribution Examples and Gram Matrices","arxiv_id":"1912.12510","date":"2019-12-28","proceeding":null,"authors":["Chandramouli Shama Sastry","Sageev Oore"],"abstract":"When presented with Out-of-Distribution (OOD) examples, deep neural networks yield confident, incorrect predictions. Detecting OOD examples is challenging, and the potential risks are high. In this paper, we propose to detect OOD examples by identifying inconsistencies between activity patterns and class predicted. We find that characterizing activity patterns by Gram matrices and identifying anomalies in gram matrix values can yield high OOD detection rates. We identify anomalies in the gram matrices by simply comparing each value with its respective range observed over the training data. Unlike many approaches, this can be used with any pre-trained softmax classifier and does not require access to OOD data for fine-tuning hyperparameters, nor does it require OOD access for inferring parameters. The method is applicable across a variety of architectures and vision datasets and, for the important and surprisingly hard task of detecting far-from-distribution out-of-distribution examples, it generally performs better than or equal to state-of-the-art OOD detection methods (including those that do assume access to OOD examples).","url_abs":"https://arxiv.org/abs/1912.12510v2","url_pdf":"https://arxiv.org/pdf/1912.12510v2.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":"detecting-out-of-distribution-examples-with","repo_url":"https://github.com/VectorInstitute/gram-ood-detection","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"detecting-out-of-distribution-examples-with","repo_url":"https://github.com/joelsimonoff/gram-adversary-detection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"detecting-out-of-distribution-examples-with","repo_url":"https://github.com/nazim1021/OOD-detection-using-OECC","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"detecting-out-of-distribution-examples-with","repo_url":"https://github.com/zeroshot-ood/ood-detection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"detecting-out-of-distribution-examples-with","repo_url":"https://github.com/kobybibas/pnml_ood_detection","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"ood-detection","task_name":"Out of Distribution (OOD) Detection"},{"task_slug":"out-of-distribution-detection","task_name":"Out-of-Distribution Detection"}],"methods":[{"method_slug":"softmax","method_name":"Softmax"}],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/out-of-distribution-detection-on-cifar-10-vs","task":"Out-of-Distribution Detection","dataset":"CIFAR-10 vs CIFAR-100","model":"ResNet + diagonal elements of Gram matrix","rank_in_archive_order":14,"of":14,"metrics":{"AUROC":"79.7"},"uses_additional_data":false},{"leaderboard":"/sota/out-of-distribution-detection-on-cifar-100-vs","task":"Out-of-Distribution Detection","dataset":"CIFAR-100 vs CIFAR-10","model":"ResNet + diagonal elements of Gram matrix","rank_in_archive_order":13,"of":14,"metrics":{"AUROC":"76.6"},"uses_additional_data":false},{"leaderboard":"/sota/out-of-distribution-detection-on-cifar-100-vs","task":"Out-of-Distribution Detection","dataset":"CIFAR-100 vs CIFAR-10","model":"DenseNet + diagonal elements of Gram matrix","rank_in_archive_order":14,"of":14,"metrics":{"AUROC":"70.1"},"uses_additional_data":false}],"syntology":{"syntology_url":"https://syntology.ai/paper/1912.12510","atlas_url":"https://app.syntology.ai/?focus=1912.12510","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1912.12510"}},"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/zeroshot-ood/ood-detection","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/joelsimonoff/gram-adversary-detection","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/VectorInstitute/gram-ood-detection","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/nazim1021/OOD-detection-using-OECC","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kobybibas/pnml_ood_detection","reach":null}],"summary":{"ran_draft_wrong":5,"unverified":3},"by_repo_kind":{"official":{"samples":3,"ran":0,"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":8,"samples":[{"code_sha256_prefix":"17dd7052b2035130","entry":"G_p","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"17dd7052b2035130"}},{"code_sha256_prefix":"48a9e0f0fbcaf665","entry":"cpu","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"48a9e0f0fbcaf665"}},{"code_sha256_prefix":"b16e920816efe253","entry":"normalize_l2","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"b16e920816efe253"}},{"code_sha256_prefix":"5b640b32a444ae38","entry":"tensor_clamp","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"5b640b32a444ae38"}},{"code_sha256_prefix":"63b4423b18c974ad","entry":"tensor_clamp_l2","repo":null,"repo_kind":null,"path":null,"file_url":null,"link_basis":"identical_code_first_harvested_elsewhere","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":null,"inline_ok":false,"mcp_get_code":{"code_sha256":"63b4423b18c974ad"}},{"code_sha256_prefix":"160824dee7076cd5","entry":"compute_metric","repo":"VectorInstitute/gram-ood-detection","repo_kind":"official","path":"calculate_log.py","file_url":"https://github.com/VectorInstitute/gram-ood-detection/blob/HEAD/calculate_log.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"160824dee7076cd5"}},{"code_sha256_prefix":"749638f4131be5e5","entry":"get_curve","repo":"VectorInstitute/gram-ood-detection","repo_kind":"official","path":"calculate_log.py","file_url":"https://github.com/VectorInstitute/gram-ood-detection/blob/HEAD/calculate_log.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"749638f4131be5e5"}},{"code_sha256_prefix":"511013ffe412491c","entry":"metric","repo":"VectorInstitute/gram-ood-detection","repo_kind":"official","path":"calculate_log.py","file_url":"https://github.com/VectorInstitute/gram-ood-detection/blob/HEAD/calculate_log.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"511013ffe412491c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}