Papers › Learning Deep Features for Discriminative Localization

Learning Deep Features for Discriminative Localization

14 Dec 2015CVPR 2016 6arXiv:1512.04150archive 2025-07-28

Bolei Zhou, Aditya Khosla, Agata Lapedriza, Aude Oliva, Antonio Torralba

In this work, we revisit the global average pooling layer proposed in [13], and shed light on how it explicitly enables the convolutional neural network to have remarkable localization ability despite being trained on image-level labels. While this technique was previously proposed as a means for regularizing training, we find that it actually builds a generic localizable deep representation that can be applied to a variety of tasks. Despite the apparent simplicity of global average pooling, we are able to achieve 37.1% top-5 error for object localization on ILSVRC 2014, which is remarkably close to the 34.2% top-5 error achieved by a fully supervised CNN approach. We demonstrate that our network is able to localize the discriminative image regions on a variety of tasks despite not being trained for them

PaperPDFConference PDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1512.04150")

Code

Syntology Ran 2 of 17 code samples harvested from 5 repositories linked to this paper; 15 have no recorded run. Of those that ran: 1 ran · our draft was wrong; 1 ran · fixture could not drive it.

By repository: community (archive-listed): 15 samples from 5 repositories, 0 ran; 2 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

35 repositories listed; official and paper-mentioned ones first.

zhoubolei/CAM officialmentioned on GitHubtfMIT report
Azure/AzureChestXRay mentioned on GitHubpytorchMIT report
GoAhead106283/MURA_deep_learning mentioned on GitHubpytorch report
HRanWang/SA mentioned on GitHubpytorchMIT report
HRanWang/Spatial-Attention mentioned on GitHubpytorchMIT report
HRanWang/Spatial-Re-Scaling mentioned on GitHubpytorchMIT report
KangBK0120/CAM mentioned on GitHubpytorch report
MarcBS/keras mentioned on GitHub report
Seb-Good/deep_ecg mentioned on GitHubtfMIT report
Seb-Good/deepecg mentioned on GitHubtfMIT report
TooTouch/WhiteBox-Part1 mentioned on GitHubpytorch report
airalcorn2/strike-with-a-pose mentioned on GitHubpytorchGPL-3.0 report
chandrakantkhandelwal/PracticeCodes mentioned on GitHubtfnot reachable when probed 2026-09-18 — repositories for recent papers often appear after camera-ready report
djib2011/high-res-mapping mentioned on GitHubtfMIT report
fatLime/Predict-Lung-Disease mentioned on GitHubtf report
frgfm/torch-cam mentioned on GitHubpytorch report
froggydisk/CAM mentioned on GitHub report
innat/ML-Bookmarks mentioned on GitHubtfMIT report
innat/ML-Resource mentioned on GitHubtfMIT report
joaopauloschuler/k-neural-api mentioned on GitHubtfLGPL-3.0 report
metalbubble/CAM mentioned on GitHubtfMIT report
schizop/SA mentioned on GitHubpytorchMIT report
teang1995/CAM-Class-Activation-Map- mentioned on GitHubnot reachable when probed 2026-09-18 — repositories for recent papers often appear after camera-ready report
vlue-c/PyTorch-Explanations mentioned on GitHubpytorchMIT report
windstormer/Cfd-CAM mentioned on GitHubpytorch report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

17 samples harvested; 2 ran; 0 honoured the contract we drafted; 15 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · our draft was wrong
1ran · fixture could not drive it
15unverified

Licence: 3 of the 17 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 5 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: 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. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

accuracy HRanWang/SA/reid/evaluation_metrics/classification.py community (archive-listed) unverified MIT (permissive) · 772e4c0adffb5ced · report
batch_norm_layer Seb-Good/deep_ecg/deepecg/training/networks/layers.py community (archive-listed) unverified MIT (permissive) · 90f0009f4943eaba · report
cmc HRanWang/SA/reid/evaluation_metrics/ranking.py community (archive-listed) unverified MIT (permissive) · 45d780ae624e4a07 · report
compute_attention MarcBS/keras/keras/layers/recurrent_advanced.py community (archive-listed) unverified licence not identified · pointer only · 29da671ed0be79c5 · report
conv_layer Seb-Good/deep_ecg/deepecg/training/networks/layers.py community (archive-listed) unverified MIT (permissive) · 3868070230627300 · report
evaluate_all HRanWang/SA/reid/evaluators.py community (archive-listed) unverified MIT (permissive) · 86c7510a3d312224 · report
extract_features HRanWang/SA/reid/evaluators.py community (archive-listed) unverified MIT (permissive) · a3a0b6aa3ef1629d · report
fc_layer Seb-Good/deep_ecg/deepecg/training/networks/layers.py community (archive-listed) unverified MIT (permissive) · 8bea81cdefc702dc · report
get_class_map philipperemy/tensorflow-class-activation-mapping/class_activation_map.py community (archive-listed) unverified MIT (permissive) · 7324083eaa579a70 · report
load_image philipperemy/tensorflow-class-activation-mapping/utils.py community (archive-listed) unverified MIT (permissive) · 3d17be084f03b272 · report
mean_ap HRanWang/SA/reid/evaluation_metrics/ranking.py community (archive-listed) unverified MIT (permissive) · 7138b7088bf941e8 · report
new_conv_layer philipperemy/tensorflow-class-activation-mapping/utils.py community (archive-listed) unverified MIT (permissive) · 8c76c366331fd7d8 · report
pairwise_distance HRanWang/SA/reid/evaluators.py community (archive-listed) unverified MIT (permissive) · e6f090a0a1fb4c32 · report
preprocess_input djib2011/high-res-mapping/densenet.py community (archive-listed) unverified MIT (permissive) · df095bccc89495e4 · report
read_dataset philipperemy/tensorflow-class-activation-mapping/utils.py community (archive-listed) unverified MIT (permissive) · 3f1ecae9b50aa92a · report
swin_reshape_transform identical code first harvested elsewhere ran · our draft was wrong fingerprinted licence of this copy not recorded · cd9e431963bd28ca · report
vit_reshape_transform identical code first harvested elsewhere ran · fixture could not drive it licence of this copy not recorded · 3e3e7c2d436361ca · report

Tasks

Object LocalizationWeakly-Supervised Object Localization

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
Weakly-Supervised Object Localization ILSVRC 2015 AlexNet-GAP Top-1 Error Rate 67.19 #2 of 2 Archive leaderboard report
Weakly-Supervised Object Localization ILSVRC 2016 VGGnet-GAP Top-5 Error 45.14 #3 of 4 Archive leaderboard report
Weakly-Supervised Object Localization ILSVRC 2016 AlexNet-GAP Top-5 Error 52.16 #4 of 4 Archive leaderboard report
Weakly-Supervised Object Localization Tiny ImageNet CAM Top-1 Localization Accuracy 40.55 #2 of 3 Archive leaderboard report

Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.

Methods

Average PoolingGlobal Average Pooling

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections