Papers › Enabling Progressive Whole-slide Image Analysis with Multi-scale Pyramidal Network

Enabling Progressive Whole-slide Image Analysis with Multi-scale Pyramidal Network

2 Feb 2026arXiv:2602.01951added by Syntology

Shuyang Wu, Yifu Qiu, Ines P Nearchou, Sandrine Prost, Jonathan A Fallowfield, Hakan Bilen, Timothy J Kendall

Title, abstract, authors and date from arXiv's metadata (CC0); this paper is not in the Papers with Code archive (frozen 2025-07-28).

Multiple-instance Learning (MIL) is commonly used for computational pathology (CPath), where multi-scale features are essential for capturing both fine cellular details and broad tissue architecture. However, existing multi-scale MIL approaches typically rely on the inflexible multi-magnification inputs or the computationally expensive architectures. As pre-trained foundation models (FMs) become the trend for feature extraction and boost lightweight models, we rethink and explore a more efficient multi-scale MIL method. In this paper, we propose the Multi-scale Pyramidal Network (MSPN), a plug-and-play module for attention-based MIL. MSPN introduces progressive multi-scale whole-slide image analysis using only a single high-magnification input. It consists of (1) grid-based remapping that aggregates high-magnification features to derive spatially-aware coarse feature maps, and (2) the Coarse Guidance Network (CGN) that learns coarse contexts. We benchmark MSPN as an add-on module to 4 attention-based frameworks on 5 clinically relevant tasks with 2 foundation models, and a pre-trained MIL framework. Our results demonstrate that MSPN consistently improves MIL across the compared configurations and tasks, while being lightweight and easy-to-use.

PaperPDFCode 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="2602.01951")

Code

Syntology Ran 9 of 76 code samples harvested from 14 repositories linked to this paper; 67 have no recorded run. Of those that ran: 1 ran · violated contract; 3 ran · our draft was wrong; 2 ran · fixture could not drive it; 3 ran with no contract checked.

By repository: found in paper text by Syntology: 76 samples from 14 repositories, 9 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

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

binli123/dsmil-wsi found in paper text by Syntology report
szc19990412/TransMIL found in paper text by Syntology report
franblueee/smmil found in paper text by SyntologyApache-2.0 report
olgarithmics/ICLR_CAMIL found in paper text by Syntology report
mahmoodlab/Patch-GCN found in paper text by Syntology report
AMLab-Amsterdam/AttentionDeepMIL found in paper text by Syntology report
mahmoodlab/CLAM found in paper text by Syntology report
BearCleverProud/HAG-MIL found in paper text by Syntology report
histocartography/zoommil found in paper text by Syntology report
mahmoodlab/HIPT found in paper text by Syntology report
CraigMyles/SurGen-Dataset found in paper text by Syntology report
mahmoodlab/CONCH found in paper text by Syntology report
mahmoodlab/UNI found in paper text by Syntology report
lin-lcx/H2-MIL found in paper text by Syntology report
hrlblab/CS-MIL found in paper text by Syntology report

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

76 samples harvested; 9 ran; 0 honoured the contract we drafted; 67 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 · violated contract
3ran · our draft was wrong
2ran · fixture could not drive it
3ran
67unverified

Licence: 72 of the 76 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 14 repositories linked to this paper, official or community; each sample names its own and says which. “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.

Attention AMLab-Amsterdam/AttentionDeepMIL/model.py found in paper text by Syntology ran MIT (permissive) · d4242c60b1f75593 · report
Attention hrlblab/CS-MIL/Train_Test_Code/model3.py found in paper text by Syntology ran MIT (permissive) · 54abaec4cabb8d79 · report
MILNet binli123/dsmil-wsi/dsmil.py found in paper text by Syntology ran · metamorphic tier: deterministic fingerprinted MIT (permissive) · de1b4199048bbf4e · report
drop_path mahmoodlab/HIPT/HIPT_4K/vision_transformer.py found in paper text by Syntology ran · fixture could not drive it fingerprinted no licence file found · pointer only · 55120f2026b56aa2 · report
lovasz_grad szc19990412/TransMIL/MyLoss/lovasz_loss.py found in paper text by Syntology ran · violated contract fingerprinted no licence file found · pointer only · e85b5d21dc5b8382 · report
patching CraigMyles/SurGen-Dataset/reproducibility/create_patches.py found in paper text by Syntology ran · our draft was wrong GPL-3.0 (copyleft) · pointer only · 6ca1f4cd53ffd7e6 · report
segment mahmoodlab/CLAM/create_patches.py found in paper text by Syntology ran · our draft was wrong GPL-3.0 (copyleft) · pointer only · a63b7288bd08c89e · report
segment CraigMyles/SurGen-Dataset/reproducibility/create_patches.py found in paper text by Syntology ran · our draft was wrong GPL-3.0 (copyleft) · pointer only · 2d44fb6699a9a708 · report
trunc_normal_ mahmoodlab/HIPT/HIPT_4K/vision_transformer.py found in paper text by Syntology ran · fixture could not drive it no licence file found · pointer only · 915b71e73a54fc97 · report
DeepMILAttModel franblueee/smmil/code/models/DeepMILAttModel.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 6cff85a1767704d7 · report
PatchGCN_Surv mahmoodlab/Patch-GCN/models/model_graph_mil.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · cec6a288fb5a9185 · report
aggregate_array mahmoodlab/CONCH/conch/downstream/utils.py found in paper text by Syntology unverified licence not identified · pointer only · b76f341d8d32dc9d · report
bag_dataset olgarithmics/ICLR_CAMIL/feature_extractor/compute_feats.py found in paper text by Syntology unverified no licence file found · pointer only · 9676ecbef4203d64 · report
cmap_map mahmoodlab/HIPT/HIPT_4K/attention_visualization_utils.py found in paper text by Syntology unverified licence not identified · pointer only · 4d3d877633e65237 · report
collate_MIL BearCleverProud/HAG-MIL/utils.py found in paper text by Syntology unverified no licence file found · pointer only · d046835fc5ae244a · report
collate_features BearCleverProud/HAG-MIL/utils.py found in paper text by Syntology unverified no licence file found · pointer only · ca6cc1908af21a64 · report
compute_edts_forPenalizedLoss szc19990412/TransMIL/MyLoss/ND_Crossentropy.py found in paper text by Syntology unverified no licence file found · pointer only · 3827e58ea2156657 · report
concat_images mahmoodlab/UNI/uni/downstream/utils.py found in paper text by Syntology unverified licence not identified · pointer only · 920414c82af2eb8b · report
concat_scores4k mahmoodlab/HIPT/HIPT_4K/hipt_heatmap_utils.py found in paper text by Syntology unverified licence not identified · pointer only · e586a895c91f9196 · report
config_imname mahmoodlab/HIPT/1-Hierarchical-Pretraining/eval_image_retrieval.py found in paper text by Syntology unverified licence not identified · pointer only · 49cf1f4ce52e9613 · report
config_qimname mahmoodlab/HIPT/1-Hierarchical-Pretraining/eval_image_retrieval.py found in paper text by Syntology unverified licence not identified · pointer only · 91c5ae2396603107 · report
config_train_step CraigMyles/SurGen-Dataset/reproducibility/transformer_main_multiclass.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · d55b2ef17c915703 · report
create_model mahmoodlab/CONCH/conch/open_clip_custom/factory.py found in paper text by Syntology unverified licence not identified · pointer only · c2232d7752942a50 · report
create_model_from_pretrained mahmoodlab/CONCH/conch/open_clip_custom/factory.py found in paper text by Syntology unverified licence not identified · pointer only · c07db83a133a0bb0 · report
euclidean_dist lin-lcx/H2-MIL/code/IHPool.py found in paper text by Syntology unverified no licence file found · pointer only · 261a67397af29d5f · report
eval_fewshot mahmoodlab/UNI/uni/downstream/eval_patch_features/fewshot.py found in paper text by Syntology unverified licence not identified · pointer only · 7fb3ef1c67b62595 · report
eval_knn mahmoodlab/UNI/uni/downstream/eval_patch_features/fewshot.py found in paper text by Syntology unverified licence not identified · pointer only · faa2f85b94fa91a5 · report
eval_metric olgarithmics/ICLR_CAMIL/models/metrics.py found in paper text by Syntology unverified no licence file found · pointer only · 6d0f65012732e719 · report
eval_transforms CraigMyles/SurGen-Dataset/reproducibility/datasets/dataset_h5.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · cc2cb0baf0de0b6d · report
extract_patch_features_from_dataloader mahmoodlab/UNI/uni/downstream/extract_patch_features.py found in paper text by Syntology unverified licence not identified · pointer only · 5da51e85b6f85369 · report
flatten szc19990412/TransMIL/MyLoss/ND_Crossentropy.py found in paper text by Syntology unverified no licence file found · pointer only · 308002c4fb135bbe · report
freeze_batch_norm_2d mahmoodlab/CONCH/conch/open_clip_custom/utils.py found in paper text by Syntology unverified licence not identified · pointer only · 9b5765523c6d17fd · report
generate_surroundings BearCleverProud/HAG-MIL/create_quadtree_wsis.py found in paper text by Syntology unverified no licence file found · pointer only · 7614b58635bac91a · report
get_best_level_for_downsample CraigMyles/SurGen-Dataset/reproducibility/wsi_core/WholeSlideImage.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · d15ed64b57312a3c · report
get_encoder mahmoodlab/UNI/uni/get_encoder/get_encoder.py found in paper text by Syntology unverified licence not identified · pointer only · a07e1b2d1139417d · report
get_eval_metrics mahmoodlab/UNI/uni/downstream/eval_patch_features/metrics.py found in paper text by Syntology unverified licence not identified · pointer only · 90b3a2884e9ef8b4 · report
get_eval_transforms mahmoodlab/UNI/uni/get_encoder/get_encoder.py found in paper text by Syntology unverified licence not identified · pointer only · 8c69a97fedddfc84 · report
get_norm_constants mahmoodlab/UNI/uni/get_encoder/get_encoder.py found in paper text by Syntology unverified licence not identified · pointer only · 3167522c249c7c89 · report
get_scores256 mahmoodlab/HIPT/HIPT_4K/hipt_heatmap_utils.py found in paper text by Syntology unverified licence not identified · pointer only · 2b68cf8db190bd17 · report
get_simple_loader BearCleverProud/HAG-MIL/utils.py found in paper text by Syntology unverified no licence file found · pointer only · 9c335517b3199bc1 · report
get_tp_fp_fn szc19990412/TransMIL/MyLoss/boundary_loss.py found in paper text by Syntology unverified no licence file found · pointer only · b9f4ad3e03ad4503 · report
get_tp_fp_fn szc19990412/TransMIL/MyLoss/dice_loss.py found in paper text by Syntology unverified no licence file found · pointer only · 2457db2dce538ac0 · report
image_transform mahmoodlab/CONCH/conch/open_clip_custom/transform.py found in paper text by Syntology unverified licence not identified · pointer only · 67a513369202b48a · report
infer_folder_structure mahmoodlab/CONCH/conch/downstream/wsi_datasets.py found in paper text by Syntology unverified licence not identified · pointer only · a93fc96526f7c7f7 · report
initialize_df BearCleverProud/HAG-MIL/wsi_core/batch_process_utils.py found in paper text by Syntology unverified no licence file found · pointer only · 2294c69b1f977ee2 · report
isBlackPatch BearCleverProud/HAG-MIL/wsi_core/wsi_utils.py found in paper text by Syntology unverified no licence file found · pointer only · da36c66c0dc9829f · report
isBlackPatch_S BearCleverProud/HAG-MIL/wsi_core/wsi_utils.py found in paper text by Syntology unverified no licence file found · pointer only · 9aaa29e4bf4b5c1f · report
isWhitePatch BearCleverProud/HAG-MIL/wsi_core/wsi_utils.py found in paper text by Syntology unverified no licence file found · pointer only · f8ae8348aecd8800 · report
is_image_file mahmoodlab/HIPT/1-Hierarchical-Pretraining/eval_copy_detection.py found in paper text by Syntology unverified licence not identified · pointer only · dfebfd56865b6379 · report
knn_classifier mahmoodlab/HIPT/1-Hierarchical-Pretraining/eval_knn.py found in paper text by Syntology unverified no licence file found · pointer only · 6ecb6791e6a9ebfb · report
label_propagation mahmoodlab/HIPT/1-Hierarchical-Pretraining/eval_video_segmentation.py found in paper text by Syntology unverified licence not identified · pointer only · 3093e0466654d790 · report
load_params mahmoodlab/CLAM/create_heatmaps.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · 0e0d4a1ac74c2632 · report
load_pretrained_weights CraigMyles/SurGen-Dataset/reproducibility/models/resnet_custom.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · 42ebcfb93d93ecfb · report
merge_dict mahmoodlab/CONCH/conch/downstream/utils.py found in paper text by Syntology unverified licence not identified · pointer only · 53108a9e6f4eb2c0 · report
nll_loss szc19990412/TransMIL/MyLoss/ND_Crossentropy.py found in paper text by Syntology unverified no licence file found · pointer only · 2f6a7a4faec6cb11 · report
norm_mask mahmoodlab/HIPT/1-Hierarchical-Pretraining/eval_video_segmentation.py found in paper text by Syntology unverified licence not identified · pointer only · e015f2c93c762aff · report
normalise CraigMyles/SurGen-Dataset/reproducibility/wsi_core/WholeSlideImage.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · 3a334b495845600c · report
optimal_thresh olgarithmics/ICLR_CAMIL/models/metrics.py found in paper text by Syntology unverified no licence file found · pointer only · 125ef8019f9275cc · report
parse_config_dict mahmoodlab/CLAM/create_heatmaps.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · 450847a8f5821550 · report
patching mahmoodlab/CLAM/create_patches.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · 1f0265b494709bf9 · report
prototype_topk_vote mahmoodlab/UNI/uni/downstream/eval_patch_features/protonet.py found in paper text by Syntology unverified licence not identified · pointer only · 04b5b0b3851a614a · report
read_state_dict mahmoodlab/CONCH/conch/open_clip_custom/factory.py found in paper text by Syntology unverified licence not identified · pointer only · 18fe2d6550294742 · report
resnet50_baseline CraigMyles/SurGen-Dataset/reproducibility/models/resnet_custom.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · 2fca12b132f7c766 · report
restrict_neighborhood mahmoodlab/HIPT/1-Hierarchical-Pretraining/eval_video_segmentation.py found in paper text by Syntology unverified licence not identified · pointer only · efc78e753491eeab · report
roc_threshold olgarithmics/ICLR_CAMIL/models/metrics.py found in paper text by Syntology unverified no licence file found · pointer only · 0671088a6441acba · report
roll_batch2img mahmoodlab/HIPT/HIPT_4K/hipt_model_utils.py found in paper text by Syntology unverified licence not identified · pointer only · 5295ea6e56f2c0a3 · report
save_hdf5 olgarithmics/ICLR_CAMIL/feature_extractor/compute_feats.py found in paper text by Syntology unverified no licence file found · pointer only · c6bbc9c9564d7227 · report
scale_img mahmoodlab/UNI/uni/downstream/utils.py found in paper text by Syntology unverified licence not identified · pointer only · 51b8e7e23437e7e1 · report
score_ap_from_ranks_1 mahmoodlab/HIPT/1-Hierarchical-Pretraining/eval_copy_detection.py found in paper text by Syntology unverified licence not identified · pointer only · 5f21619ff716c1ce · report
series CraigMyles/SurGen-Dataset/reproducibility/datasets/dataset_h5.py found in paper text by Syntology unverified GPL-3.0 (copyleft) · pointer only · 9f5f710bfda43d78 · report
softmax_helper szc19990412/TransMIL/MyLoss/boundary_loss.py found in paper text by Syntology unverified no licence file found · pointer only · c66339fca70da624 · report
sum_tensor szc19990412/TransMIL/MyLoss/boundary_loss.py found in paper text by Syntology unverified no licence file found · pointer only · 9e4e02bee8e90bea · report
tokenize mahmoodlab/CONCH/conch/open_clip_custom/custom_tokenizer.py found in paper text by Syntology unverified licence not identified · pointer only · 848bfe2419fbf48a · report
topj_pooling mahmoodlab/CONCH/conch/downstream/zeroshot_path.py found in paper text by Syntology unverified licence not identified · pointer only · 159439ef889d63b1 · report
vit4k_xs mahmoodlab/HIPT/HIPT_4K/vision_transformer4k.py found in paper text by Syntology unverified licence not identified · pointer only · 1c5a8e21d403c18d · report
vit_tiny mahmoodlab/HIPT/HIPT_4K/vision_transformer.py found in paper text by Syntology unverified no licence file found · pointer only · 0a55ce5c7c8fd9fd · report

Results from the paper

The Papers with Code archive ends with its 2025-07-28 snapshot. This paper's arXiv identifier, 2602.01951, was issued in February 2026, after that date, so the archive has no leaderboard rows for it.

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