diff --git a/.gitattributes b/.gitattributes index a6344aac8c09253b3b630fb776ae94478aa0275b..17e6086abf2cf5c1d47fc7a01b31a4986b91bc9a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text *.zst filter=lfs diff=lfs merge=lfs -text *tfevents* filter=lfs diff=lfs merge=lfs -text +figures/architecture.png filter=lfs diff=lfs merge=lfs -text +figures/qualitative.png filter=lfs diff=lfs merge=lfs -text diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000000000000000000000000000000000000..2eab67bb59d6a3f36c41b04c98a470e83fe2fbe9 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,15 @@ +cff-version: 1.2.0 +message: >- + Cite the final STHELAR-Adapt COMPAYL 2026 paper when its bibliographic record + is available, together with the CellViT and STHELAR papers listed in README.md. +title: STHELAR-Adapt +type: software +authors: + - family-names: Taddei + given-names: Alberto + - family-names: Giraud-Sauveur + given-names: Felicie +repository-code: https://github.com/albtad01/STHELAR-Adapt +abstract: >- + Parameter-efficient adaptation of CellViT-SAM-H x40 to STHELAR 40x for H&E + nuclei instance segmentation and spatial-transcriptomics-derived cell typing. diff --git a/LICENSE b/LICENSE index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0deb2566088b90f312a485039f4c385df6c7c6be 100644 --- a/LICENSE +++ b/LICENSE @@ -0,0 +1,16 @@ +“Commons Clause” License Condition v1.0 + +The Software is provided to you by the Licensor under the License, as defined below, subject to the following condition. + +Without limiting other conditions in the License, the grant of rights under the License will not include, and the License does not grant to you, the right to Sell the Software. + +For purposes of the foregoing, “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties, for a fee or other consideration (including without limitation fees for hosting or consulting/ support services related to the Software), a product or service whose value derives, entirely or substantially, from the functionality of the Software. Any license notice or attribution required by the License must also include this Commons Clause License Condition notice. + +If any parts of this work is used, a citation of the following work is necessary: +Hörst, F., Rempe, M., Heine, L., Seibold, C., Keyl, J., Baldini, G., Ugurel, S., Siveke, J., Grünwald, B., Egger, J., & Kleesiek, J. (2023). CellViT: Vision Transformers for precise cell segmentation and classification. https://doi.org/10.48550/ARXIV.2306.15350 + +Software: CellViT + +License: Apache 2.0 with Commons Clause + +Licensor: Fabian Hörst, Jens Kleesiek diff --git a/README.md b/README.md index f2bec61e8f6d4e96d1f241aa29a1390fbaf2e49e..f862240b433279a2e7f4373a2fe44fa5c0068d6e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,214 @@ --- +library_name: pytorch license: other -license_name: apache-license-2.0-with-commons-clause -license_link: LICENSE +license_name: apache-2.0-with-commons-clause +tags: + - cellvit + - segment-anything + - sthelar + - spatial-transcriptomics + - nuclei-segmentation + - peft + - lora + - adapter +datasets: + - FelicieGS/STHELAR_40x --- + +# STHELAR-Adapt — draft model card + +> **Verified release candidate.** All 12 canonical adapters have passed conversion, exact round-trip equality, model loading, forward smoke, and metadata checks. The CellViT-SAM-H x40 base checkpoint is not redistributed. + +![STHELAR-Adapt architecture: pretrained encoder base weights frozen, trainable LoRA and AdaptFormer modules, frozen decoder body, and trainable final heads](figures/architecture.png) + +## Model summary + +STHELAR-Adapt provides adapter-only weights for adapting CellViT-SAM-H x40 to STHELAR 40x H&E nuclei instance segmentation and five-class cell-type classification. It is not a standalone model and does not include the frozen CellViT/SAM-H base checkpoint. + +The selected method freezes the CellViT-SAM-H x40 encoder base weights and decoder body while training: + +- LoRA rank 8, alpha 8, dropout 0 on every encoder attention Q and V projection; +- AdaptFormer bottlenecks with reduction 16 and GELU in encoder MLP blocks; +- final NP (nuclei probability), HV (horizontal/vertical), and NT (nuclei type) output heads. + +The selected configuration has 7,908,779 trainable parameters, approximately 1.1176% of the full model. Mutable BatchNorm buffers needed for exact reconstruction are packaged separately from trainable state keys inside each safetensors file. + +## Exact base requirement + +- Architecture/checkpoint name: `CellViT-SAM-H-x40.pth` +- Model family: CellViT-SAM-H x40 +- Backbone: SAM-H, 32 blocks, embedding dimension 1280, 16 attention heads +- Input: normalized RGB 256×256 STHELAR 40x patches + +The base checkpoint is **not included or redistributed**. The locally verified checkpoint SHA256 is `b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf`. The authoritative download location, license terms, and release identifier still require manual verification; a filename match alone is insufficient for compatibility. + +## Intended uses + +- Research reproduction of the COMPAYL 2026 STHELAR-Adapt experiments. +- Research evaluation of nuclei instance segmentation and the declared STHELAR five-class mapping on matching 40x preprocessing/splits. +- Study of tissue-specific parameter-efficient adaptation of CellViT. + +## Out-of-scope uses + +- Clinical diagnosis, prognosis, treatment selection, or autonomous pathology reporting. +- Patient-level decision making or deployment without independent validation and governance. +- Images from unvalidated tissues, stains, scanners, magnifications, institutions, or preprocessing pipelines. +- Treating spatial-transcriptomics-derived labels as error-free pathology ground truth. +- Loading an adapter with a different base checkpoint, label order, number of classes, or adapter architecture. + +## Training data + +Adapters were trained on the public [STHELAR 40x Hugging Face dataset](https://huggingface.co/datasets/FelicieGS/STHELAR_40x), derived from Xenium spatial transcriptomics paired with H&E imagery. Experiments cover kidney, liver, tonsil, ovary, breast, colon, lung, pancreatic, and skin tissues. KLT combines kidney, liver, and tonsil. + +The release configs use within-slide spatial train/validation/test regions with a 128-coordinate-unit boundary exclusion band. Some tissue configs cap each slide at 50,000 patches before splitting. The exact dataset revision and file hashes must be added before upload. + +### Label mapping + +The task has five foreground classes plus background: + +| ID | Label | +|---:|---| +| 0 | Background | +| 1 | Immune | +| 2 | Stromal | +| 3 | Epithelial | +| 4 | Melanocyte | +| 5 | Other | + +`num_nuclei_classes` is therefore 6. All release configs set `num_tissue_classes: 1`. The inherited CellViT tissue classifier is retained for architecture/trainer-interface and packaged-state compatibility. A one-output softmax and cross-entropy objective are degenerate, and tissue classification is not part of the reported task; reported metrics evaluate the NP, HV, and NT nuclei outputs. + +## Training configuration + +Selected PEFT runs use AdamW, learning rate `5e-5`, betas `[0.85, 0.85]`, batch size 4, 10 epochs, mixed precision, cell-aware sampling with gamma 0.85, and the augmentations recorded in `configs/release/compayl2026/`. KLT results are reported as the mean over seeds 42 and 43. Tissue results use seed 42 except Pancreatic and Tonsil (seed 43); Kidney PEFT averages seeds 42 and 43. + +The selected checkpoint in each source adapter metadata is `model_best.pth`; the stored metadata records the validation selection state. Final reported numbers below are test metrics and were not used as the selection criterion. + +## Results + +### KLT headline + +| Method | Trainable | mPQ | bPQ | F1 detection | F1 type (present classes) | +|---|---:|---:|---:|---:|---:| +| FullFT | 100% | 0.3092 | 0.5147 | 0.8286 | 0.6661 | +| Selected LoRA+AF + heads | 1.1176% | 0.2936 | 0.5043 | 0.8345 | 0.5783 | + +The selected PEFT method recovers 94.96% of FullFT KLT mPQ. `results/klt_ablation_final_with_type_metrics.csv` contains the full ablation table and definitions. + +### Tissue-specific results + +| Tissue | FullFT mPQ | PEFT mPQ | PEFT F1 detection | PEFT F1 type | Adapter seed(s) | +|---|---:|---:|---:|---:|---| +| Liver | 0.4124 | 0.3925 | 0.8916 | 0.5673 | 42 | +| Kidney | 0.2592 | 0.2484 | 0.8332 | 0.5013 | 42, 43 mean | +| Ovary | 0.3195 | 0.2999 | 0.8414 | 0.6182 | 42 | +| Breast | 0.3481 | 0.3348 | 0.8424 | 0.5873 | 42 | +| Colon | 0.2057 | 0.2047 | 0.7904 | 0.6076 | 42 | +| Lung | 0.3225 | 0.3015 | 0.8637 | 0.6271 | 42 | +| Pancreatic | 0.2118 | 0.2389 | 0.7383 | 0.6682 | 43 | +| Skin | 0.2107 | 0.2239 | 0.7250 | 0.6778 | 42 | +| Tonsil | 0.2498 | 0.2346 | 0.8226 | 0.5955 | 43 | +| Mean | 0.2822 | 0.2755 | 0.8165 | 0.6056 | across tissues | + +See `results/tissue_specific_compayl2026_final.csv` for unrounded values and aggregation policy. + +## Adapter inventory + +The release candidate contains 12 adapter-only files: KLT seeds 42/43; Breast 42; Colon 42; Kidney 42/43; Liver 42; Lung 42; Ovary 42; Pancreatic 43; Skin 42; and Tonsil 43. [`adapter_manifest_verified.csv`](adapter_manifest_verified.csv) freezes stable public IDs, exact source/config/export SHA256 values, tensor structure, and verification status; [`verification_summary.json`](verification_summary.json) records the environment and full test outcomes. + +No ablation, failed, retest, duplicate-named alternate run, or full base checkpoint belongs in the canonical set. + +## Download and load + +This repository distributes safetensors adapter packages. Normal users download a package; they do not convert the original `.pth` training checkpoints. From a clone of the STHELAR-Adapt code repository, download one adapter and its matching config: + +```python +from huggingface_hub import snapshot_download + +release_root = snapshot_download( + repo_id="albtad01/STHELAR-Adapt-CellViT-SAM-H-x40", + local_dir="sthelar-adapt-release", + allow_patterns=[ + "adapters/klt/seed42/*", + "configs/release/compayl2026/klt/" + "training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_" + "lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "scripts/verify_released_adapter.py", + ], +) +``` + +First verify the downloaded adapter package without a base checkpoint: + +```bash +python sthelar-adapt-release/scripts/verify_released_adapter.py \ + sthelar-adapt-release/adapters/klt/seed42 +``` + +Then use the STHELAR-Adapt repository to reconstruct the base and load one adapter: + +```python +from utils.cellvit_adapter_hub import load_cellvit_base, load_sthelar_adapter + +release_root = "sthelar-adapt-release" +model = load_cellvit_base( + model_name="cellvit-sam-h-x40", + base_checkpoint="/path/to/CellViT-SAM-H-x40.pth", + config_path=f"{release_root}/configs/release/compayl2026/klt/" + "training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_" + "lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + device="cpu", +) +load_sthelar_adapter(model, f"{release_root}/adapters/klt/seed42") +``` + +To validate compatibility and run a lightweight CPU forward pass, explicitly provide the local base: + +```bash +python sthelar-adapt-release/scripts/verify_released_adapter.py \ + sthelar-adapt-release/adapters/klt/seed42 \ + --base-checkpoint /path/to/CellViT-SAM-H-x40.pth +``` + +Only one adapter should be loaded at a time. Reconstruct the base when changing architecture, decoder scope, or label mapping. + +## Limitations + +- There are limited slides per tissue; within-slide spatial splits do not measure cross-site or cross-patient generalization. +- ST-derived cell-type labels have assignment uncertainty and are not interchangeable with morphology-only annotations. +- A residual F1-type gap remains between selected PEFT and FullFT, even where detection F1 is comparable or higher. +- The heterogeneous `Other` class and absent/rare classes affect macro metrics. +- Ovary aggregate metrics have a documented slide-dominance caveat. +- Performance may shift with scanner, stain, tissue, magnification, patch sampling, QC threshold, or base-checkpoint version. +- Research use only; no clinical validation has been performed. + +## Ethical and clinical considerations + +Errors can miss nuclei, merge/split instances, or assign incorrect cell types, potentially biasing downstream biological conclusions. Tissue and site imbalance can produce uneven performance across populations and laboratories. Users should inspect per-class/per-slide errors, validate on their intended cohort, retain human oversight, and avoid clinical claims. Dataset privacy/de-identification and intended-use conditions remain the user's responsibility. + +## Qualitative results + +![Ground truth, linear probing, and selected PEFT predictions across nine tissues](figures/qualitative.png) + +Rows show ground truth, final-head linear probing, and selected PEFT predictions for chosen patches across nine tissues. Examples were selected for qualitative illustration and are not intended to constitute a statistically representative sample. + +## Citation + +Please cite the final STHELAR-Adapt COMPAYL 2026 paper once its bibliographic record is available, as well as: + +- Hörst et al., “CellViT: Vision Transformers for Precise Cell Segmentation and Classification,” *Medical Image Analysis* 94 (2024), 103143. DOI: 10.1016/j.media.2024.103143. +- Giraud-Sauveur et al., “STHELAR, a Multi-Tissue Dataset Linking Spatial Transcriptomics and Histology for Cell Type Annotation,” *Scientific Data* (2026). DOI: 10.1038/s41597-026-06937-6. +- Kirillov et al., “Segment Anything,” ICCV 2023. + +## License + +This release is distributed under the terms in [`LICENSE`](LICENSE): +**Apache License 2.0 with the Commons Clause**. This preserves the +restrictive upstream terms applied to the original CellViT code. + +The CellViT-SAM-H x40 base checkpoint is not included and must be obtained +separately under its applicable terms. + +STHELAR source data and source imagery remain licensed under CC BY 4.0. +The qualitative figures contain STHELAR-derived imagery with ground-truth +and model-prediction overlays added for this work. Please cite CellViT, +STHELAR, Segment Anything, and STHELAR-Adapt as described above. diff --git a/adapter_manifest_verified.csv b/adapter_manifest_verified.csv new file mode 100644 index 0000000000000000000000000000000000000000..e1e05bb412a7dceaa169ceb7db6fc5d82825cb4d --- /dev/null +++ b/adapter_manifest_verified.csv @@ -0,0 +1,13 @@ +adapter_id,release_path,tissue,seed,method,source_path,source_size_bytes,source_sha256,source_config_path,source_config_sha256,adapter_config_sha256,safetensors_size_bytes,safetensors_sha256,adapter_state_key_count,mutable_buffer_key_count,safetensors_tensor_count,trainable_parameter_count,dtype_distribution,components,label_mapping,round_trip_tensor_equality,metadata_sanitization,base_checkpoint,base_checkpoint_sha256,state_dict_loading,missing_adapter_keys,unexpected_adapter_keys,forward_smoke_256x256,output_tensor_shapes,verification_status,verification_date +klt/seed42,release/huggingface/adapters/klt/seed42,KidneyLiverTonsil,42,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth,31956368,7b5410fdceb94d541862bb2ebf000a5629c1f5b1efd2f90c953dfb59be39f237,configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml,8f4c6ccb9d0ab636c7571a5d77e156160ca5201d09ae0dc45cd2b4cef21198d9,85d5a9fa38b7b94e390c88ffcdfda7786b27f51bbcaca92e8c8a779c266a8b4b,31812100,46ebbc6c07303feaf33dd58af7a8eebb0f50aed335078ddf84f6bcfa79231d7d,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +klt/seed43,release/huggingface/adapters/klt/seed43,KidneyLiverTonsil,43,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth,31956368,123ad536ac9bab1a655bad4de91d044965c3cd9c0d399c1972b246179485fd3f,configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml,101953aa54b543759a056ed0517a8aaa0a61f1d23d79c8b6e53be88be68e2715,bc77a0d0aa8354b3b8f971d965fbe291ae5b4ab0a09886d6c622c8bfbe645443,31812156,91ae522ab092dd303919db6ddc43a3f3f4e54a73a94e1a40335af5a715215690,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/breast/seed42,release/huggingface/adapters/tissue_specific/breast/seed42,Breast,42,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth,31933820,5c23266a36dfbeb920d817164f3814f3fe08ea9ebebd2673d651d4ec9ed02b31,configs/release/compayl2026/tissue_specific/training_sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml,a0626700023d9148ab5cf5eb4407aec8abec9ee135d3eba7b202ad5a2942f811,41872431b328a1f203ff6bc3044870eaa45f4cf21f171f64540e43165361806d,31812100,df2da19b6e32b15641fde119b3115bd1b31b40009ed958b690833eb9d051f3f5,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/colon/seed42,release/huggingface/adapters/tissue_specific/colon/seed42,Colon,42,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_colon_5class_spatial_margin128_lora_adaptformer_heads_only_seed42/sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth,31932839,929b20ba7edef3faea19594a184b96238dda0c67e8e00bbe3fe00c682de8624c,configs/release/compayl2026/tissue_specific/training_sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml,dc89c8bd6cc4b446287cd9ffae356b4d04103d9c7cb75b88901b56d6345e4909,27d22f473eb52c27aeab9301308b44203ed59a36df443e3388d5e09b700e6879,31812028,57f5c1f483af257421ff17988705b47ae4d7e193ba78721c3545de9091b21c01,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/kidney/seed42,release/huggingface/adapters/tissue_specific/kidney/seed42,Kidney,42,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth,31925695,c1a6d7745382eb82d7f0c827940fd127f6aa1c11efe44f6ef9eebe5024901e9b,configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml,7e36c95954e74129c06c660f00e05a1169d705d1f3c047ec5608ce39daa959fc,f7139f247b4c8d5bb7ec4b02f8229dd5830a96ac39ff713e1377944aaad33db8,31812004,07b90305180138e35916cd5f0046028a3452a48fe07483f19e7f35180580fd48,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/kidney/seed43,release/huggingface/adapters/tissue_specific/kidney/seed43,Kidney,43,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_heads_only_seed43/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth,31925695,acf9e40f6b133e2073ef8dd219240a24028117aea04e110f66b9db19c327d36f,configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml,a03148518b312ac0f554bfcde6d7fc7e40d80ca3257617237084f5925e9c969f,a21c18e9e60209454580aac33d8c173c624cee934539a5a0177008c403a0f1a9,31812060,0af3083727fa184a52db8b9383c072a9eed33129f85976afa15018a04a3e3fd5,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/liver/seed42,release/huggingface/adapters/tissue_specific/liver/seed42,Liver,42,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth,31925226,2ef8ee2925dc14969ace204897acaeafeffef0608f24fbb6cc4ca335b32dd3a9,configs/release/compayl2026/tissue_specific/training_sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml,dbf520027118e50391dda70c9b41ed95b057890f8311c47224229ff5a2a049e0,892b058d292e097aea11a815e082d3a2cf82059d61b53a13355cc02a10b1a42d,31811988,86c3a97052847fa1d1b991a3c915a89654d94a7acda1ed9fa3c00de4110c3cff,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/lung/seed42,release/huggingface/adapters/tissue_specific/lung/seed42,Lung,42,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth,31930898,2281149c47ac023d17ad2b8a2910a7c25a609b31326c05c0497d8657aa2dab7a,configs/release/compayl2026/tissue_specific/training_sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml,927f91669490dbfd2bc9675480b5dfcd760e0b6c9b3f6dcf740d33adeed76c57,75b486fb0e8e7166cb535f30d39f9bfc69c176d44e43b17cdfda68e8983410ea,31812068,77cda0133fa06351da106a728237d4dc79e9eed246975d617cf692b583f417e2,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/ovary/seed42,release/huggingface/adapters/tissue_specific/ovary/seed42,Ovary,42,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth,31925226,a00cb91646af00f9259a5a632793a0fe505c6a2c8532d082137cfac767629a66,configs/release/compayl2026/tissue_specific/training_sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml,adc6f055eb1938d8797234c388bd7e22f7cf179b1c984843323b1e8f65fbf551,d69daa9d104da1fca2f779f5b4c633d7dcae14e3734acec172e0aea70d61bbf0,31812052,11133a3be26357e6387cfe714164ded302a486c3afbd8a688cda8ac0c93a474f,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/pancreatic/seed43,release/huggingface/adapters/tissue_specific/pancreatic/seed43,Pancreatic,43,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_heads_only_seed43/sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth,31956368,e3b2886f1c58e389cebff0c406bac22a373fddaef170922f6f0011bb9002f056,configs/release/compayl2026/tissue_specific/training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml,ea13c37fd01e814c792a973a1a70bb18db5b4f8af32e389c07b9c6e431953efa,10101cf61c113e3ccdf649495758fa0119f5b17e5683139684da2f50a0c75c17,31812148,cfa072affb2108b0a5f7cfe54a0f535f6849e2ee72773fdaef13bb3119dc3b59,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/skin/seed42,release/huggingface/adapters/tissue_specific/skin/seed42,Skin,42,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_skin_5class_spatial_margin128_lora_adaptformer_heads_only_seed42/sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth,31930962,48b0f204b036ed236f7189ff30b81f3a466ab909a2edf7cdd5adac43491c263e,configs/release/compayl2026/tissue_specific/training_sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml,79f821c83ca153a91f226081ab7d83fb14fc03b0661273ed47477dbe8e5e9195,233918730801dbf825139df63e1ed037349d980ee1579ee9be87df9c8b9d2718,31812140,8de0d4d635d315af1cf954143808ff6652a2f8b161aabd5e21196ee3e2125f78,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 +tissue_specific/tonsil/seed43,release/huggingface/adapters/tissue_specific/tonsil/seed43,Tonsil,43,lora_adaptformer_r8_a8_red16_heads_only,adapters/sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_heads_only_seed43/sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth,31933820,a8d8918adebd3fe0f67a3c58c8f0687947dfcba17dc2c155779d129ffdfd29bf,configs/release/compayl2026/tissue_specific/training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml,e8817fa5a380226f2e1231e3eb58a4cc1c31e02aa6adf4ee486a4ca042b07369,055f28b48de5e8f56f7a99966a6cd7141acacec3b1481b80d9782fab139ec3c0,31812092,6ffecf88503c77444a420fac60be91c9ecfd30c87142df6c59a8d6cf8b06103d,296,105,401,7908779,"{""float32"":366,""int64"":35}",LoRA;AdaptFormer;NP head;HV head;NT head,0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other,pass,pass,CellViT-SAM-H-x40.pth,b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf,pass,0,0,pass,"tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]",pass,2026-07-20 diff --git a/adapters/README.md b/adapters/README.md new file mode 100644 index 0000000000000000000000000000000000000000..80ebbc11b2587ed65e5e72fa4535bb912b740221 --- /dev/null +++ b/adapters/README.md @@ -0,0 +1,7 @@ +# Adapter weights staging area + +This local release candidate contains exactly the 12 canonical safetensors +packages listed in `../adapter_manifest_verified.csv`. Conversion, exact +round-trip equality, base-model loading, 256×256 CPU forward tests, and +metadata/security scans passed on 2026-07-20. Licensing approval remains +required before publication. Never include `CellViT-SAM-H-x40.pth` here. diff --git a/adapters/klt/seed42/adapter_config.json b/adapters/klt/seed42/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..5b0471d1a6b7b146b977acc37743d1f771e43982 --- /dev/null +++ b/adapters/klt/seed42/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "klt/seed42", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "b866581a457dc560d043feaa09a9645a6fb3e3f4", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 9, + "best_metric": 0.6178788079570484, + "epoch": 9 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.8438178906581169, + "Binary-Cell-Jacard-Mean/Validation": 0.7434626643655559, + "Epithelial-PQ/Validation": 0.5132278517110832, + "Epithelial-f1_detection/Validation": 0.6823196098704725, + "Epithelial-precision_detection/Validation": 0.686933429503467, + "Epithelial-recall_detection/Validation": 0.6777673545966229, + "Immune-PQ/Validation": 0.36978579191955824, + "Immune-f1_detection/Validation": 0.6701652422389159, + "Immune-precision_detection/Validation": 0.6447534962697127, + "Immune-recall_detection/Validation": 0.6976622887159245, + "Loss/Validation": 3.7534951436637654, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.0, + "Other-f1_detection/Validation": 0.0, + "Other-precision_detection/Validation": 0.0, + "Other-recall_detection/Validation": 0.0, + "Stromal-PQ/Validation": 0.3057955743363447, + "Stromal-f1_detection/Validation": 0.34090621280044575, + "Stromal-precision_detection/Validation": 0.4537608889128617, + "Stromal-recall_detection/Validation": 0.27300680691563156, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.6178788079570484, + "f1_detection/Validation": 0.8691923687668535, + "hv_map_mse/Validation": 0.030196526270396637, + "hv_map_msge/Validation": 0.32333832958547193, + "kidneylivertonsil-Dice/Validation": 0.8438178906581169, + "kidneylivertonsil-Jaccard/Validation": 0.7434626643655559, + "kidneylivertonsil-bPQ/Validation": 0.6178788079570484, + "kidneylivertonsil-mPQ/Validation": 0.36703889066116785, + "mPQ/Validation": 0.36703889066116785, + "nuclei_binary_map_bce/Validation": 0.18075743103307662, + "nuclei_binary_map_dice/Validation": 0.23090106650154188, + "nuclei_type_map_bce/Validation": 0.46633933033093367, + "nuclei_type_map_dice/Validation": 2.5219624571280903, + "precision_detection/Validation": 0.902566475554151, + "recall_detection/Validation": 0.8381983938487467, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-25T113302_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "original_run_name": "sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "run_name": "sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "8f4c6ccb9d0ab636c7571a5d77e156160ca5201d09ae0dc45cd2b4cef21198d9", + "source_filename": "sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "split": "spatial", + "tissue": null, + "tissue_types": { + "KidneyLiverTonsil": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/klt/seed42/adapter_model.safetensors b/adapters/klt/seed42/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..65ae49ef7364032af62151d853b363218110a612 --- /dev/null +++ b/adapters/klt/seed42/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46ebbc6c07303feaf33dd58af7a8eebb0f50aed335078ddf84f6bcfa79231d7d +size 31812100 diff --git a/adapters/klt/seed42/checksums.json b/adapters/klt/seed42/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..799160e0a055cdd09a2b133040870ff3ea1d519c --- /dev/null +++ b/adapters/klt/seed42/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "85d5a9fa38b7b94e390c88ffcdfda7786b27f51bbcaca92e8c8a779c266a8b4b", + "adapter_model.safetensors": "46ebbc6c07303feaf33dd58af7a8eebb0f50aed335078ddf84f6bcfa79231d7d" + }, + "source": { + "path": "sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "sha256": "7b5410fdceb94d541862bb2ebf000a5629c1f5b1efd2f90c953dfb59be39f237" + }, + "source_config": { + "path": "training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "sha256": "8f4c6ccb9d0ab636c7571a5d77e156160ca5201d09ae0dc45cd2b4cef21198d9" + } +} diff --git a/adapters/klt/seed43/adapter_config.json b/adapters/klt/seed43/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..068d14ebd5b5a61632f9a293220588918241f83f --- /dev/null +++ b/adapters/klt/seed43/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "klt/seed43", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "b866581a457dc560d043feaa09a9645a6fb3e3f4", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 8, + "best_metric": 0.6144695021997414, + "epoch": 8 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.8430438232456902, + "Binary-Cell-Jacard-Mean/Validation": 0.741897658346781, + "Epithelial-PQ/Validation": 0.5074422962070098, + "Epithelial-f1_detection/Validation": 0.6709352041051806, + "Epithelial-precision_detection/Validation": 0.723399442654989, + "Epithelial-recall_detection/Validation": 0.6255662746754923, + "Immune-PQ/Validation": 0.3668788471046428, + "Immune-f1_detection/Validation": 0.6591476195229065, + "Immune-precision_detection/Validation": 0.6375172439564409, + "Immune-recall_detection/Validation": 0.6822973427850598, + "Loss/Validation": 3.8156798169164374, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.0018698719256675996, + "Other-f1_detection/Validation": 0.04203997243280496, + "Other-precision_detection/Validation": 0.24897959183673468, + "Other-recall_detection/Validation": 0.022958223560406475, + "Stromal-PQ/Validation": 0.3057626759532219, + "Stromal-f1_detection/Validation": 0.3556727095662596, + "Stromal-precision_detection/Validation": 0.40360645634317655, + "Stromal-recall_detection/Validation": 0.3179158819836786, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.6144695021997414, + "f1_detection/Validation": 0.8661661149368696, + "hv_map_mse/Validation": 0.030544564186936556, + "hv_map_msge/Validation": 0.32509804851938, + "kidneylivertonsil-Dice/Validation": 0.8430438232456902, + "kidneylivertonsil-Jaccard/Validation": 0.741897658346781, + "kidneylivertonsil-bPQ/Validation": 0.6144695021997414, + "kidneylivertonsil-mPQ/Validation": 0.36493648663348227, + "mPQ/Validation": 0.36493648663348227, + "nuclei_binary_map_bce/Validation": 0.1924120750610191, + "nuclei_binary_map_dice/Validation": 0.22692785333878923, + "nuclei_type_map_bce/Validation": 0.5237940709189614, + "nuclei_type_map_dice/Validation": 2.5169031976473213, + "precision_detection/Validation": 0.8930727150067796, + "recall_detection/Validation": 0.8408333874866102, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-26T002217_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "original_run_name": "sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "run_name": "sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "source_config_sha256": "101953aa54b543759a056ed0517a8aaa0a61f1d23d79c8b6e53be88be68e2715", + "source_filename": "sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "split": "spatial", + "tissue": null, + "tissue_types": { + "KidneyLiverTonsil": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/klt/seed43/adapter_model.safetensors b/adapters/klt/seed43/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..e05e2ec45419af4d3d5eaca409250c6df749ce41 --- /dev/null +++ b/adapters/klt/seed43/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:91ae522ab092dd303919db6ddc43a3f3f4e54a73a94e1a40335af5a715215690 +size 31812156 diff --git a/adapters/klt/seed43/checksums.json b/adapters/klt/seed43/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..80abdd339c95d3e0d8bb47162d46ab3dba58d271 --- /dev/null +++ b/adapters/klt/seed43/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "bc77a0d0aa8354b3b8f971d965fbe291ae5b4ab0a09886d6c622c8bfbe645443", + "adapter_model.safetensors": "91ae522ab092dd303919db6ddc43a3f3f4e54a73a94e1a40335af5a715215690" + }, + "source": { + "path": "sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "sha256": "123ad536ac9bab1a655bad4de91d044965c3cd9c0d399c1972b246179485fd3f" + }, + "source_config": { + "path": "training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "sha256": "101953aa54b543759a056ed0517a8aaa0a61f1d23d79c8b6e53be88be68e2715" + } +} diff --git a/adapters/tissue_specific/breast/seed42/adapter_config.json b/adapters/tissue_specific/breast/seed42/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..7e2234c000451d7438214546c1e7cc06477942c2 --- /dev/null +++ b/adapters/tissue_specific/breast/seed42/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/breast/seed42", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 8, + "best_metric": 0.583507724281621, + "epoch": 8 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.8478932372837328, + "Binary-Cell-Jacard-Mean/Validation": 0.7486129600718889, + "Epithelial-PQ/Validation": 0.5064468833905197, + "Epithelial-f1_detection/Validation": 0.7353463587921847, + "Epithelial-precision_detection/Validation": 0.7546382930168872, + "Epithelial-recall_detection/Validation": 0.7170162134032969, + "Immune-PQ/Validation": 0.344815796433348, + "Immune-f1_detection/Validation": 0.4764201043516013, + "Immune-precision_detection/Validation": 0.5126297173746205, + "Immune-recall_detection/Validation": 0.4449883416124781, + "Loss/Validation": 3.211094039331956, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.033022483856023674, + "Other-f1_detection/Validation": 0.13533615283651743, + "Other-precision_detection/Validation": 0.14468350483317743, + "Other-recall_detection/Validation": 0.12712328767123288, + "Stromal-PQ/Validation": 0.3414230603290778, + "Stromal-f1_detection/Validation": 0.471147698783843, + "Stromal-precision_detection/Validation": 0.46372917786136486, + "Stromal-recall_detection/Validation": 0.478807434553445, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.583507724281621, + "breast-Dice/Validation": 0.8478932372837328, + "breast-Jaccard/Validation": 0.7486129600718889, + "breast-bPQ/Validation": 0.583507724281621, + "breast-mPQ/Validation": 0.3929006127317587, + "f1_detection/Validation": 0.8483565575834311, + "hv_map_mse/Validation": 0.021578914759321693, + "hv_map_msge/Validation": 0.26363088243227867, + "mPQ/Validation": 0.3929006127317587, + "nuclei_binary_map_bce/Validation": 0.1415032284565805, + "nuclei_binary_map_dice/Validation": 0.18767179173237922, + "nuclei_type_map_bce/Validation": 0.3323650782037964, + "nuclei_type_map_dice/Validation": 2.26434414647732, + "precision_detection/Validation": 0.8736923601232812, + "recall_detection/Validation": 0.8244487478851774, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-30T170944_sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "original_run_name": "sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "run_name": "sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "a0626700023d9148ab5cf5eb4407aec8abec9ee135d3eba7b202ad5a2942f811", + "source_filename": "sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "breast", + "tissue_types": { + "Breast": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/breast/seed42/adapter_model.safetensors b/adapters/tissue_specific/breast/seed42/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..ccd311da84f97282659ea50bc91d906c81f7fe4b --- /dev/null +++ b/adapters/tissue_specific/breast/seed42/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df2da19b6e32b15641fde119b3115bd1b31b40009ed958b690833eb9d051f3f5 +size 31812100 diff --git a/adapters/tissue_specific/breast/seed42/checksums.json b/adapters/tissue_specific/breast/seed42/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..b15949c248386cfaed7e7911849e67884ad00ea8 --- /dev/null +++ b/adapters/tissue_specific/breast/seed42/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "41872431b328a1f203ff6bc3044870eaa45f4cf21f171f64540e43165361806d", + "adapter_model.safetensors": "df2da19b6e32b15641fde119b3115bd1b31b40009ed958b690833eb9d051f3f5" + }, + "source": { + "path": "sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "sha256": "5c23266a36dfbeb920d817164f3814f3fe08ea9ebebd2673d651d4ec9ed02b31" + }, + "source_config": { + "path": "training_sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "sha256": "a0626700023d9148ab5cf5eb4407aec8abec9ee135d3eba7b202ad5a2942f811" + } +} diff --git a/adapters/tissue_specific/colon/seed42/adapter_config.json b/adapters/tissue_specific/colon/seed42/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..6c721f992c76eba7da194cd3f304bacc850ec1d3 --- /dev/null +++ b/adapters/tissue_specific/colon/seed42/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/colon/seed42", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 9, + "best_metric": 0.41751082875125045, + "epoch": 9 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.773967139740554, + "Binary-Cell-Jacard-Mean/Validation": 0.6457436081850177, + "Epithelial-PQ/Validation": 0.3357966317469722, + "Epithelial-f1_detection/Validation": 0.712531257233584, + "Epithelial-precision_detection/Validation": 0.7459588236900309, + "Epithelial-recall_detection/Validation": 0.6819710803372504, + "Immune-PQ/Validation": 0.21434616471960657, + "Immune-f1_detection/Validation": 0.48714521581885367, + "Immune-precision_detection/Validation": 0.5013395666636699, + "Immune-recall_detection/Validation": 0.4737324996601876, + "Loss/Validation": 4.474561900138855, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.0, + "Other-f1_detection/Validation": 0.0, + "Other-precision_detection/Validation": 0.0, + "Other-recall_detection/Validation": 0.0, + "Stromal-PQ/Validation": 0.27801339839903483, + "Stromal-f1_detection/Validation": 0.6092291810621134, + "Stromal-precision_detection/Validation": 0.6423016834307581, + "Stromal-recall_detection/Validation": 0.5793957436027363, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.41751082875125045, + "colon-Dice/Validation": 0.773967139740554, + "colon-Jaccard/Validation": 0.6457436081850177, + "colon-bPQ/Validation": 0.41751082875125045, + "colon-mPQ/Validation": 0.259866083463896, + "f1_detection/Validation": 0.7925744851371194, + "hv_map_mse/Validation": 0.05080005710944533, + "hv_map_msge/Validation": 0.4866997618675232, + "mPQ/Validation": 0.259866083463896, + "nuclei_binary_map_bce/Validation": 0.30107942619919775, + "nuclei_binary_map_dice/Validation": 0.3501794784069061, + "nuclei_type_map_bce/Validation": 0.5764883622527123, + "nuclei_type_map_dice/Validation": 2.7093148279190062, + "precision_detection/Validation": 0.8362771652742278, + "recall_detection/Validation": 0.7532126413524017, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-30T092331_sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "original_run_name": "sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "run_name": "sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "dc89c8bd6cc4b446287cd9ffae356b4d04103d9c7cb75b88901b56d6345e4909", + "source_filename": "sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "colon", + "tissue_types": { + "Colon": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/colon/seed42/adapter_model.safetensors b/adapters/tissue_specific/colon/seed42/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..f43964c5ac146937729f10538ab0b08eb3e82419 --- /dev/null +++ b/adapters/tissue_specific/colon/seed42/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57f5c1f483af257421ff17988705b47ae4d7e193ba78721c3545de9091b21c01 +size 31812028 diff --git a/adapters/tissue_specific/colon/seed42/checksums.json b/adapters/tissue_specific/colon/seed42/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..860d12027f64de6af62791dc8542fe6b982690db --- /dev/null +++ b/adapters/tissue_specific/colon/seed42/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "27d22f473eb52c27aeab9301308b44203ed59a36df443e3388d5e09b700e6879", + "adapter_model.safetensors": "57f5c1f483af257421ff17988705b47ae4d7e193ba78721c3545de9091b21c01" + }, + "source": { + "path": "sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "sha256": "929b20ba7edef3faea19594a184b96238dda0c67e8e00bbe3fe00c682de8624c" + }, + "source_config": { + "path": "training_sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "sha256": "dc89c8bd6cc4b446287cd9ffae356b4d04103d9c7cb75b88901b56d6345e4909" + } +} diff --git a/adapters/tissue_specific/kidney/seed42/adapter_config.json b/adapters/tissue_specific/kidney/seed42/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..6eb258727448577fafa4d3ff3dbd039f97178102 --- /dev/null +++ b/adapters/tissue_specific/kidney/seed42/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/kidney/seed42", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 8, + "best_metric": 0.6119661468046158, + "epoch": 8 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.8360611065773487, + "Binary-Cell-Jacard-Mean/Validation": 0.7340133472290986, + "Epithelial-PQ/Validation": 0.40390183772451693, + "Epithelial-f1_detection/Validation": 0.6067298609075215, + "Epithelial-precision_detection/Validation": 0.8013940280526632, + "Epithelial-recall_detection/Validation": 0.48815389453821156, + "Immune-PQ/Validation": 0.2752275427965444, + "Immune-f1_detection/Validation": 0.51405568147221, + "Immune-precision_detection/Validation": 0.5085335653570712, + "Immune-recall_detection/Validation": 0.5196990424076607, + "Loss/Validation": 4.630482578277588, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.0, + "Other-f1_detection/Validation": 0.0, + "Other-precision_detection/Validation": 0.0, + "Other-recall_detection/Validation": 0.0, + "Stromal-PQ/Validation": 0.35414706108557426, + "Stromal-f1_detection/Validation": 0.46707950743825183, + "Stromal-precision_detection/Validation": 0.4027002147898128, + "Stromal-recall_detection/Validation": 0.5559603490637973, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.6119661468046158, + "f1_detection/Validation": 0.8849213461458922, + "hv_map_mse/Validation": 0.014084497435639302, + "hv_map_msge/Validation": 0.29387842582331763, + "kidney-Dice/Validation": 0.8360611065773487, + "kidney-Jaccard/Validation": 0.7340133472290986, + "kidney-bPQ/Validation": 0.6119661468046158, + "kidney-mPQ/Validation": 0.31722915997278023, + "mPQ/Validation": 0.31722915997278023, + "nuclei_binary_map_bce/Validation": 0.10497714198297925, + "nuclei_binary_map_dice/Validation": 0.18845541874567667, + "nuclei_type_map_bce/Validation": 0.34087377885977427, + "nuclei_type_map_dice/Validation": 3.6882132954067655, + "precision_detection/Validation": 0.9345661036691905, + "recall_detection/Validation": 0.8402848689550442, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-28T203148_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "original_run_name": "sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "run_name": "sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "7e36c95954e74129c06c660f00e05a1169d705d1f3c047ec5608ce39daa959fc", + "source_filename": "sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "kidney", + "tissue_types": { + "Kidney": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/kidney/seed42/adapter_model.safetensors b/adapters/tissue_specific/kidney/seed42/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..fa535d4a2706b8bcd141132e87b30c7619e8cb8f --- /dev/null +++ b/adapters/tissue_specific/kidney/seed42/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07b90305180138e35916cd5f0046028a3452a48fe07483f19e7f35180580fd48 +size 31812004 diff --git a/adapters/tissue_specific/kidney/seed42/checksums.json b/adapters/tissue_specific/kidney/seed42/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..5d0a98f797a8053da66eaecd4d6e196671bfa6a1 --- /dev/null +++ b/adapters/tissue_specific/kidney/seed42/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "f7139f247b4c8d5bb7ec4b02f8229dd5830a96ac39ff713e1377944aaad33db8", + "adapter_model.safetensors": "07b90305180138e35916cd5f0046028a3452a48fe07483f19e7f35180580fd48" + }, + "source": { + "path": "sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "sha256": "c1a6d7745382eb82d7f0c827940fd127f6aa1c11efe44f6ef9eebe5024901e9b" + }, + "source_config": { + "path": "training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "sha256": "7e36c95954e74129c06c660f00e05a1169d705d1f3c047ec5608ce39daa959fc" + } +} diff --git a/adapters/tissue_specific/kidney/seed43/adapter_config.json b/adapters/tissue_specific/kidney/seed43/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..c19585d8919560f2ee431463bef94ec0bfa972d0 --- /dev/null +++ b/adapters/tissue_specific/kidney/seed43/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/kidney/seed43", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 9, + "best_metric": 0.6251506884131275, + "epoch": 9 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.8416907987139952, + "Binary-Cell-Jacard-Mean/Validation": 0.743394168472721, + "Epithelial-PQ/Validation": 0.4114818998124288, + "Epithelial-f1_detection/Validation": 0.6100951459442026, + "Epithelial-precision_detection/Validation": 0.7809429444306828, + "Epithelial-recall_detection/Validation": 0.500582195405949, + "Immune-PQ/Validation": 0.29760636347687985, + "Immune-f1_detection/Validation": 0.5292338374605285, + "Immune-precision_detection/Validation": 0.5021445691938943, + "Immune-recall_detection/Validation": 0.5594125500667557, + "Loss/Validation": 3.9071590185165403, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.030624859623275037, + "Other-f1_detection/Validation": 0.04567180031864047, + "Other-precision_detection/Validation": 0.06913183279742766, + "Other-recall_detection/Validation": 0.03409992069785884, + "Stromal-PQ/Validation": 0.362872038044961, + "Stromal-f1_detection/Validation": 0.4764109092311847, + "Stromal-precision_detection/Validation": 0.45145489106594533, + "Stromal-recall_detection/Validation": 0.504287464271131, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.6251506884131275, + "f1_detection/Validation": 0.8875575909348755, + "hv_map_mse/Validation": 0.013960934037135707, + "hv_map_msge/Validation": 0.2854144561621878, + "kidney-Dice/Validation": 0.8416907987139952, + "kidney-Jaccard/Validation": 0.743394168472721, + "kidney-bPQ/Validation": 0.6251506884131275, + "kidney-mPQ/Validation": 0.33064171398117764, + "mPQ/Validation": 0.33064171398117764, + "nuclei_binary_map_bce/Validation": 0.09548413948052459, + "nuclei_binary_map_dice/Validation": 0.1823976821369595, + "nuclei_type_map_bce/Validation": 0.35052578068441814, + "nuclei_type_map_dice/Validation": 2.9793760273191663, + "precision_detection/Validation": 0.9410573876305598, + "recall_detection/Validation": 0.8398135784044196, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-07-05T202208_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "original_run_name": "sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "run_name": "sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "source_config_sha256": "a03148518b312ac0f554bfcde6d7fc7e40d80ca3257617237084f5925e9c969f", + "source_filename": "sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "kidney", + "tissue_types": { + "Kidney": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/kidney/seed43/adapter_model.safetensors b/adapters/tissue_specific/kidney/seed43/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..0812e646472cfa4b6159f454645c5a7c9ae2dafb --- /dev/null +++ b/adapters/tissue_specific/kidney/seed43/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0af3083727fa184a52db8b9383c072a9eed33129f85976afa15018a04a3e3fd5 +size 31812060 diff --git a/adapters/tissue_specific/kidney/seed43/checksums.json b/adapters/tissue_specific/kidney/seed43/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..a49a62425cff0ec45df4d877e51e958d049e439a --- /dev/null +++ b/adapters/tissue_specific/kidney/seed43/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "a21c18e9e60209454580aac33d8c173c624cee934539a5a0177008c403a0f1a9", + "adapter_model.safetensors": "0af3083727fa184a52db8b9383c072a9eed33129f85976afa15018a04a3e3fd5" + }, + "source": { + "path": "sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "sha256": "acf9e40f6b133e2073ef8dd219240a24028117aea04e110f66b9db19c327d36f" + }, + "source_config": { + "path": "training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "sha256": "a03148518b312ac0f554bfcde6d7fc7e40d80ca3257617237084f5925e9c969f" + } +} diff --git a/adapters/tissue_specific/liver/seed42/adapter_config.json b/adapters/tissue_specific/liver/seed42/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..57374efa93d852b35f2878f8a5b5b3646417e427 --- /dev/null +++ b/adapters/tissue_specific/liver/seed42/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/liver/seed42", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 8, + "best_metric": 0.6673836112658498, + "epoch": 8 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.8651514607425747, + "Binary-Cell-Jacard-Mean/Validation": 0.7768243020408333, + "Epithelial-PQ/Validation": 0.6406367116876338, + "Epithelial-f1_detection/Validation": 0.7688981707892997, + "Epithelial-precision_detection/Validation": 0.7518780017240672, + "Epithelial-recall_detection/Validation": 0.7867067539997853, + "Immune-PQ/Validation": 0.32041469286193447, + "Immune-f1_detection/Validation": 0.43039991502469593, + "Immune-precision_detection/Validation": 0.5553537776254925, + "Immune-recall_detection/Validation": 0.3513472502221933, + "Loss/Validation": 3.1964969803384466, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.0, + "Other-f1_detection/Validation": 0.0, + "Other-precision_detection/Validation": 0.0, + "Other-recall_detection/Validation": 0.0, + "Stromal-PQ/Validation": 0.42081409658900054, + "Stromal-f1_detection/Validation": 0.5059184237641677, + "Stromal-precision_detection/Validation": 0.503942724109445, + "Stromal-recall_detection/Validation": 0.5079096757915983, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.6673836112658498, + "f1_detection/Validation": 0.9014059942579624, + "hv_map_mse/Validation": 0.015436116356065887, + "hv_map_msge/Validation": 0.2420996494464955, + "liver-Dice/Validation": 0.8651514607425747, + "liver-Jaccard/Validation": 0.7768243020408333, + "liver-bPQ/Validation": 0.6673836112658498, + "liver-mPQ/Validation": 0.4499602623343313, + "mPQ/Validation": 0.4499602623343313, + "nuclei_binary_map_bce/Validation": 0.1049787081188738, + "nuclei_binary_map_dice/Validation": 0.16055858993934372, + "nuclei_type_map_bce/Validation": 0.3252750018474746, + "nuclei_type_map_dice/Validation": 2.3481489120230163, + "precision_detection/Validation": 0.9442757961604408, + "recall_detection/Validation": 0.862259695593029, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-28T133237_sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "original_run_name": "sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "run_name": "sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "dbf520027118e50391dda70c9b41ed95b057890f8311c47224229ff5a2a049e0", + "source_filename": "sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "liver", + "tissue_types": { + "Liver": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/liver/seed42/adapter_model.safetensors b/adapters/tissue_specific/liver/seed42/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..a070f9fef5d179bad53763c832c173af1c9c35a4 --- /dev/null +++ b/adapters/tissue_specific/liver/seed42/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86c3a97052847fa1d1b991a3c915a89654d94a7acda1ed9fa3c00de4110c3cff +size 31811988 diff --git a/adapters/tissue_specific/liver/seed42/checksums.json b/adapters/tissue_specific/liver/seed42/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..884f79ba575426c46e3c989fc42c8ae74b179c0c --- /dev/null +++ b/adapters/tissue_specific/liver/seed42/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "892b058d292e097aea11a815e082d3a2cf82059d61b53a13355cc02a10b1a42d", + "adapter_model.safetensors": "86c3a97052847fa1d1b991a3c915a89654d94a7acda1ed9fa3c00de4110c3cff" + }, + "source": { + "path": "sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "sha256": "2ef8ee2925dc14969ace204897acaeafeffef0608f24fbb6cc4ca335b32dd3a9" + }, + "source_config": { + "path": "training_sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "sha256": "dbf520027118e50391dda70c9b41ed95b057890f8311c47224229ff5a2a049e0" + } +} diff --git a/adapters/tissue_specific/lung/seed42/adapter_config.json b/adapters/tissue_specific/lung/seed42/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..3f58dcc9d7d08c7e5ca881fb40b76b82c15691cc --- /dev/null +++ b/adapters/tissue_specific/lung/seed42/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/lung/seed42", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 9, + "best_metric": 0.5865329349288135, + "epoch": 9 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.8400324281074146, + "Binary-Cell-Jacard-Mean/Validation": 0.7307077559590132, + "Epithelial-PQ/Validation": 0.439428783623053, + "Epithelial-f1_detection/Validation": 0.6450002080645832, + "Epithelial-precision_detection/Validation": 0.7258140043080573, + "Epithelial-recall_detection/Validation": 0.5803794308537195, + "Immune-PQ/Validation": 0.361505257042702, + "Immune-f1_detection/Validation": 0.5572119063532193, + "Immune-precision_detection/Validation": 0.5847326692417157, + "Immune-recall_detection/Validation": 0.5321652574515717, + "Loss/Validation": 3.3041895084454183, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.093482926263337, + "Other-f1_detection/Validation": 0.2302982562927423, + "Other-precision_detection/Validation": 0.2553191489361702, + "Other-recall_detection/Validation": 0.20974369008021915, + "Stromal-PQ/Validation": 0.35997652553749493, + "Stromal-f1_detection/Validation": 0.48995449264136326, + "Stromal-precision_detection/Validation": 0.4685199759270404, + "Stromal-recall_detection/Validation": 0.5134442696971234, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.5865329349288135, + "f1_detection/Validation": 0.8639835550305145, + "hv_map_mse/Validation": 0.01958588068819537, + "hv_map_msge/Validation": 0.3068662489625229, + "lung-Dice/Validation": 0.8400324281074146, + "lung-Jaccard/Validation": 0.7307077559590132, + "lung-bPQ/Validation": 0.5865329349288135, + "lung-mPQ/Validation": 0.339306816314537, + "mPQ/Validation": 0.339306816314537, + "nuclei_binary_map_bce/Validation": 0.1374531825469143, + "nuclei_binary_map_dice/Validation": 0.20562681658514614, + "nuclei_type_map_bce/Validation": 0.36970939701316, + "nuclei_type_map_dice/Validation": 2.264947978472801, + "precision_detection/Validation": 0.9089791449800783, + "recall_detection/Validation": 0.8232325284656583, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-07-01T025800_sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "original_run_name": "sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "run_name": "sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "927f91669490dbfd2bc9675480b5dfcd760e0b6c9b3f6dcf740d33adeed76c57", + "source_filename": "sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "lung", + "tissue_types": { + "Lung": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/lung/seed42/adapter_model.safetensors b/adapters/tissue_specific/lung/seed42/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..b720110519dff5c5851d541728eea26b27bab09e --- /dev/null +++ b/adapters/tissue_specific/lung/seed42/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77cda0133fa06351da106a728237d4dc79e9eed246975d617cf692b583f417e2 +size 31812068 diff --git a/adapters/tissue_specific/lung/seed42/checksums.json b/adapters/tissue_specific/lung/seed42/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..01cbdae066b37413d933ba0cd3d0aaeb7343bf0d --- /dev/null +++ b/adapters/tissue_specific/lung/seed42/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "75b486fb0e8e7166cb535f30d39f9bfc69c176d44e43b17cdfda68e8983410ea", + "adapter_model.safetensors": "77cda0133fa06351da106a728237d4dc79e9eed246975d617cf692b583f417e2" + }, + "source": { + "path": "sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "sha256": "2281149c47ac023d17ad2b8a2910a7c25a609b31326c05c0497d8657aa2dab7a" + }, + "source_config": { + "path": "training_sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "sha256": "927f91669490dbfd2bc9675480b5dfcd760e0b6c9b3f6dcf740d33adeed76c57" + } +} diff --git a/adapters/tissue_specific/ovary/seed42/adapter_config.json b/adapters/tissue_specific/ovary/seed42/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..f6f4fdf71a47e1092997b07535b19c4ce7711d0a --- /dev/null +++ b/adapters/tissue_specific/ovary/seed42/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/ovary/seed42", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 8, + "best_metric": 0.5742215776690667, + "epoch": 8 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.8325517077300619, + "Binary-Cell-Jacard-Mean/Validation": 0.7256372485827199, + "Epithelial-PQ/Validation": 0.4774576281029274, + "Epithelial-f1_detection/Validation": 0.6988354077674178, + "Epithelial-precision_detection/Validation": 0.6814118528812447, + "Epithelial-recall_detection/Validation": 0.7171733771569433, + "Immune-PQ/Validation": 0.25777635843338753, + "Immune-f1_detection/Validation": 0.2846166032953105, + "Immune-precision_detection/Validation": 0.38514310215457176, + "Immune-recall_detection/Validation": 0.22570513223192412, + "Loss/Validation": 3.708249208662245, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.08194645468018266, + "Other-f1_detection/Validation": 0.17631236966967875, + "Other-precision_detection/Validation": 0.1288199964670553, + "Other-recall_detection/Validation": 0.27927237912876973, + "Stromal-PQ/Validation": 0.39917156667595827, + "Stromal-f1_detection/Validation": 0.5790419658411142, + "Stromal-precision_detection/Validation": 0.6417349377898544, + "Stromal-recall_detection/Validation": 0.5275081449635576, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.5742215776690667, + "f1_detection/Validation": 0.8559990270204528, + "hv_map_mse/Validation": 0.026272888247677612, + "hv_map_msge/Validation": 0.3242809169349216, + "mPQ/Validation": 0.33819578587039345, + "nuclei_binary_map_bce/Validation": 0.18627721004424588, + "nuclei_binary_map_dice/Validation": 0.22646485302183364, + "nuclei_type_map_bce/Validation": 0.48364236292148394, + "nuclei_type_map_dice/Validation": 2.4613109864885847, + "ovary-Dice/Validation": 0.8325517077300619, + "ovary-Jaccard/Validation": 0.7256372485827199, + "ovary-bPQ/Validation": 0.5742215776690667, + "ovary-mPQ/Validation": 0.33819578587039345, + "precision_detection/Validation": 0.8809867786267505, + "recall_detection/Validation": 0.832389653524139, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-28T203221_sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "original_run_name": "sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "run_name": "sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "adc6f055eb1938d8797234c388bd7e22f7cf179b1c984843323b1e8f65fbf551", + "source_filename": "sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "ovary", + "tissue_types": { + "Ovary": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/ovary/seed42/adapter_model.safetensors b/adapters/tissue_specific/ovary/seed42/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..2e4e89af004aaf14f07708cae0f88adf8688216d --- /dev/null +++ b/adapters/tissue_specific/ovary/seed42/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11133a3be26357e6387cfe714164ded302a486c3afbd8a688cda8ac0c93a474f +size 31812052 diff --git a/adapters/tissue_specific/ovary/seed42/checksums.json b/adapters/tissue_specific/ovary/seed42/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..53e723569513a485371b197919c87287e0592cfb --- /dev/null +++ b/adapters/tissue_specific/ovary/seed42/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "d69daa9d104da1fca2f779f5b4c633d7dcae14e3734acec172e0aea70d61bbf0", + "adapter_model.safetensors": "11133a3be26357e6387cfe714164ded302a486c3afbd8a688cda8ac0c93a474f" + }, + "source": { + "path": "sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "sha256": "a00cb91646af00f9259a5a632793a0fe505c6a2c8532d082137cfac767629a66" + }, + "source_config": { + "path": "training_sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "sha256": "adc6f055eb1938d8797234c388bd7e22f7cf179b1c984843323b1e8f65fbf551" + } +} diff --git a/adapters/tissue_specific/pancreatic/seed43/adapter_config.json b/adapters/tissue_specific/pancreatic/seed43/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..acdfbaccfb1e332874e204b7915a847c5b305a05 --- /dev/null +++ b/adapters/tissue_specific/pancreatic/seed43/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/pancreatic/seed43", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 9, + "best_metric": 0.44401826798851945, + "epoch": 9 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.768809470615377, + "Binary-Cell-Jacard-Mean/Validation": 0.64045093904754, + "Epithelial-PQ/Validation": 0.4428797899345889, + "Epithelial-f1_detection/Validation": 0.6798887086935175, + "Epithelial-precision_detection/Validation": 0.698694229534265, + "Epithelial-recall_detection/Validation": 0.6620689655172414, + "Immune-PQ/Validation": 0.28001644651976354, + "Immune-f1_detection/Validation": 0.5303359612469624, + "Immune-precision_detection/Validation": 0.5368764614185503, + "Immune-recall_detection/Validation": 0.5239529023976673, + "Loss/Validation": 4.014209417196421, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.07234460458413203, + "Other-f1_detection/Validation": 0.11372041420118344, + "Other-precision_detection/Validation": 0.07723219892000502, + "Other-recall_detection/Validation": 0.21556256572029442, + "Stromal-PQ/Validation": 0.23103150311364146, + "Stromal-f1_detection/Validation": 0.3140375828365661, + "Stromal-precision_detection/Validation": 0.34540371430473277, + "Stromal-recall_detection/Validation": 0.28789391921881935, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.44401826798851945, + "f1_detection/Validation": 0.7535885844791952, + "hv_map_mse/Validation": 0.03603739079000758, + "hv_map_msge/Validation": 0.3126028008684267, + "mPQ/Validation": 0.28217214591326245, + "nuclei_binary_map_bce/Validation": 0.2491099286238884, + "nuclei_binary_map_dice/Validation": 0.3241164925505086, + "nuclei_type_map_bce/Validation": 0.5559594366562406, + "nuclei_type_map_dice/Validation": 2.536383375276291, + "pancreatic-Dice/Validation": 0.768809470615377, + "pancreatic-Jaccard/Validation": 0.64045093904754, + "pancreatic-bPQ/Validation": 0.44401826798851945, + "pancreatic-mPQ/Validation": 0.28217214591326245, + "precision_detection/Validation": 0.7387044849023091, + "recall_detection/Validation": 0.769084814978907, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-30T235608_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "original_run_name": "sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "run_name": "sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "source_config_sha256": "ea13c37fd01e814c792a973a1a70bb18db5b4f8af32e389c07b9c6e431953efa", + "source_filename": "sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "pancreatic", + "tissue_types": { + "Pancreatic": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/pancreatic/seed43/adapter_model.safetensors b/adapters/tissue_specific/pancreatic/seed43/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..71eb8bbd69f6012540b24672134fee52ddb65244 --- /dev/null +++ b/adapters/tissue_specific/pancreatic/seed43/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfa072affb2108b0a5f7cfe54a0f535f6849e2ee72773fdaef13bb3119dc3b59 +size 31812148 diff --git a/adapters/tissue_specific/pancreatic/seed43/checksums.json b/adapters/tissue_specific/pancreatic/seed43/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..16abd8ad4643b3f6952d6e3199ef1cca072110e5 --- /dev/null +++ b/adapters/tissue_specific/pancreatic/seed43/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "10101cf61c113e3ccdf649495758fa0119f5b17e5683139684da2f50a0c75c17", + "adapter_model.safetensors": "cfa072affb2108b0a5f7cfe54a0f535f6849e2ee72773fdaef13bb3119dc3b59" + }, + "source": { + "path": "sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "sha256": "e3b2886f1c58e389cebff0c406bac22a373fddaef170922f6f0011bb9002f056" + }, + "source_config": { + "path": "training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "sha256": "ea13c37fd01e814c792a973a1a70bb18db5b4f8af32e389c07b9c6e431953efa" + } +} diff --git a/adapters/tissue_specific/skin/seed42/adapter_config.json b/adapters/tissue_specific/skin/seed42/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..ac6bc8a13e4af54eb3484f500434e9afeeaa5ad9 --- /dev/null +++ b/adapters/tissue_specific/skin/seed42/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/skin/seed42", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 9, + "best_metric": 0.4059890830170927, + "epoch": 9 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.644405287879965, + "Binary-Cell-Jacard-Mean/Validation": 0.5302032195513348, + "Epithelial-PQ/Validation": 0.4410022152738952, + "Epithelial-f1_detection/Validation": 0.6375897705377475, + "Epithelial-precision_detection/Validation": 0.6478021000177968, + "Epithelial-recall_detection/Validation": 0.6276944300741507, + "Immune-PQ/Validation": 0.3136677213998655, + "Immune-f1_detection/Validation": 0.6304467845823536, + "Immune-precision_detection/Validation": 0.6297385620915033, + "Immune-recall_detection/Validation": 0.6311566018423747, + "Loss/Validation": 5.339653317471768, + "Melanocyte-PQ/Validation": 0.23603397776511362, + "Melanocyte-f1_detection/Validation": 0.4014162425315335, + "Melanocyte-precision_detection/Validation": 0.4448258950465915, + "Melanocyte-recall_detection/Validation": 0.3657258064516129, + "Other-PQ/Validation": 0.14573050108555927, + "Other-f1_detection/Validation": 0.28671406354143525, + "Other-precision_detection/Validation": 0.36521862176312436, + "Other-recall_detection/Validation": 0.23598793087684009, + "Stromal-PQ/Validation": 0.21271003855829865, + "Stromal-f1_detection/Validation": 0.3534684208841512, + "Stromal-precision_detection/Validation": 0.4104832713754647, + "Stromal-recall_detection/Validation": 0.31036033503850696, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.4059890830170927, + "f1_detection/Validation": 0.7924635366314993, + "hv_map_mse/Validation": 0.017188536055742745, + "hv_map_msge/Validation": 0.4221078635530269, + "mPQ/Validation": 0.23661186149583627, + "nuclei_binary_map_bce/Validation": 0.14086085240891638, + "nuclei_binary_map_dice/Validation": 0.36120262703997025, + "nuclei_type_map_bce/Validation": 0.3693387741262608, + "nuclei_type_map_dice/Validation": 4.028954673320689, + "precision_detection/Validation": 0.869606328267337, + "recall_detection/Validation": 0.7278922070150378, + "skin-Dice/Validation": 0.644405287879965, + "skin-Jaccard/Validation": 0.5302032195513348, + "skin-bPQ/Validation": 0.4059890830170927, + "skin-mPQ/Validation": 0.23661186149583627, + "tissue_types_ce/Validation": 0.0 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-30T092331_sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "original_run_name": "sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "run_name": "sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "79f821c83ca153a91f226081ab7d83fb14fc03b0661273ed47477dbe8e5e9195", + "source_filename": "sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "skin", + "tissue_types": { + "Skin": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/skin/seed42/adapter_model.safetensors b/adapters/tissue_specific/skin/seed42/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..fc196c02f2139f035c876aa8bd6a55eef4a63ba7 --- /dev/null +++ b/adapters/tissue_specific/skin/seed42/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8de0d4d635d315af1cf954143808ff6652a2f8b161aabd5e21196ee3e2125f78 +size 31812140 diff --git a/adapters/tissue_specific/skin/seed42/checksums.json b/adapters/tissue_specific/skin/seed42/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..472fe88bd7dccd79690048a76ec3f30aa07d113d --- /dev/null +++ b/adapters/tissue_specific/skin/seed42/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "233918730801dbf825139df63e1ed037349d980ee1579ee9be87df9c8b9d2718", + "adapter_model.safetensors": "8de0d4d635d315af1cf954143808ff6652a2f8b161aabd5e21196ee3e2125f78" + }, + "source": { + "path": "sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "sha256": "48b0f204b036ed236f7189ff30b81f3a466ab909a2edf7cdd5adac43491c263e" + }, + "source_config": { + "path": "training_sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "sha256": "79f821c83ca153a91f226081ab7d83fb14fc03b0661273ed47477dbe8e5e9195" + } +} diff --git a/adapters/tissue_specific/tonsil/seed43/adapter_config.json b/adapters/tissue_specific/tonsil/seed43/adapter_config.json new file mode 100644 index 0000000000000000000000000000000000000000..89a821e565a13c7c5b84fab7f44c3c5fa246b9cc --- /dev/null +++ b/adapters/tissue_specific/tonsil/seed43/adapter_config.json @@ -0,0 +1,1608 @@ +{ + "adapter_id": "tissue_specific/tonsil/seed43", + "adapter_state_tensor_count": 296, + "adapter_type": "lora_adaptformer", + "adapter_weight_file": "adapter_model.safetensors", + "adaptformer": { + "activation": "GELU", + "reduction": 16 + }, + "base_checkpoint": "models/pretrained/CellViT-SAM-H-x40.pth", + "base_checkpoint_resolved": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "checkpoint_variant": "best", + "config_path": "config.yaml", + "decoder_adapter": { + "activation": null, + "alpha_init": null, + "reduction": null, + "train_alpha": null + }, + "decoder_train_scope": "heads_only", + "expected_components": [ + "lora", + "adaptformer", + "np_head", + "hv_head", + "nt_head" + ], + "expected_tensor_shapes": { + "adapter_state_dict.classifier_head.bias": [ + 1 + ], + "adapter_state_dict.classifier_head.weight": [ + 1, + 256 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.0.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.1.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.10.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.11.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.12.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.13.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.14.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.15.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.16.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.17.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.18.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.19.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.2.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.20.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.21.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.22.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.23.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.24.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.25.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.26.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.27.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.28.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.29.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.3.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.30.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.31.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.4.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.5.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.6.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.7.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.8.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_q_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_down.weight": [ + 8, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.attn.qkv.adapter_v_up.weight": [ + 1280, + 8 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_alpha": [ + 1 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.bias": [ + 80 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_downsample.weight": [ + 80, + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.bias": [ + 1280 + ], + "adapter_state_dict.encoder.blocks.9.mlp.adapter_upsample.weight": [ + 1280, + 80 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.hv_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.bias": [ + 2 + ], + "adapter_state_dict.nuclei_binary_map_decoder.decoder0_header.2.weight": [ + 2, + 64, + 1, + 1 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.bias": [ + 6 + ], + "adapter_state_dict.nuclei_type_maps_decoder.decoder0_header.2.weight": [ + 6, + 64, + 1, + 1 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.0.block.1.running_mean": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.0.block.1.running_var": [ + 32 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder0.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.decoder0.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder1.2.block.2.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.decoder1.2.block.2.running_var": [ + 128 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder2.1.block.2.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.decoder2.1.block.2.running_var": [ + 256 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.num_batches_tracked": [], + "mutable_buffer_state_dict.decoder3.0.block.2.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.decoder3.0.block.2.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.hv_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var": [ + 64 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var": [ + 128 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var": [ + 256 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked": [], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean": [ + 512 + ], + "mutable_buffer_state_dict.nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var": [ + 512 + ] + }, + "format": "cellvit_adapter_checkpoint", + "format_version": 1, + "frozen_parameter_override_count": 0, + "git_commit": "9298774a9fbaaa6e62c19426a5ed963e77e80261", + "inserted_decoder_conv_adapters": 0, + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "label_mode": "5class", + "load_verification": "exact_state_match", + "lora": { + "alpha": 8, + "dropout": 0.0, + "rank": 8, + "targets": [ + "q", + "v" + ] + }, + "metrics": { + "checkpoint": { + "best_epoch": 6, + "best_metric": 0.5643723768036121, + "epoch": 6 + }, + "validation": { + "Binary-Cell-Dice-Mean/Validation": 0.8164534891512417, + "Binary-Cell-Jacard-Mean/Validation": 0.704314737860687, + "Epithelial-PQ/Validation": 0.3543029721008048, + "Epithelial-f1_detection/Validation": 0.5699014589644487, + "Epithelial-precision_detection/Validation": 0.4783644361308802, + "Epithelial-recall_detection/Validation": 0.7047602643873663, + "Immune-PQ/Validation": 0.4426445229845563, + "Immune-f1_detection/Validation": 0.680049261724143, + "Immune-precision_detection/Validation": 0.6926819880755019, + "Immune-recall_detection/Validation": 0.6678690589677244, + "Loss/Validation": 4.669699198669857, + "Melanocyte-PQ/Validation": null, + "Melanocyte-f1_detection/Validation": null, + "Melanocyte-precision_detection/Validation": null, + "Melanocyte-recall_detection/Validation": null, + "Other-PQ/Validation": 0.007775928998657683, + "Other-f1_detection/Validation": 0.17500340738721548, + "Other-precision_detection/Validation": 0.4248841826604897, + "Other-recall_detection/Validation": 0.1101956745623069, + "Stromal-PQ/Validation": 0.173926779527584, + "Stromal-f1_detection/Validation": 0.2894998253982784, + "Stromal-precision_detection/Validation": 0.361622834879092, + "Stromal-recall_detection/Validation": 0.2413619609705357, + "Tissue-Multiclass-Accuracy/Validation": 1.0, + "bPQ/Validation": 0.5643723768036121, + "f1_detection/Validation": 0.858805642205439, + "hv_map_mse/Validation": 0.05388103126919035, + "hv_map_msge/Validation": 0.42835186628831756, + "mPQ/Validation": 0.2999150552971324, + "nuclei_binary_map_bce/Validation": 0.3063504211604595, + "nuclei_binary_map_dice/Validation": 0.3420883439205311, + "nuclei_type_map_bce/Validation": 0.6858784553629381, + "nuclei_type_map_dice/Validation": 2.8531490895483227, + "precision_detection/Validation": 0.8858830036670662, + "recall_detection/Validation": 0.8333344479592314, + "tissue_types_ce/Validation": 0.0, + "tonsil-Dice/Validation": 0.8164534891512417, + "tonsil-Jaccard/Validation": 0.704314737860687, + "tonsil-bPQ/Validation": 0.5643723768036121, + "tonsil-mPQ/Validation": 0.2999150552971324 + } + }, + "mutable_buffer_names": [ + "decoder0.0.block.1.num_batches_tracked", + "decoder0.0.block.1.running_mean", + "decoder0.0.block.1.running_var", + "decoder0.1.block.1.num_batches_tracked", + "decoder0.1.block.1.running_mean", + "decoder0.1.block.1.running_var", + "decoder1.0.block.2.num_batches_tracked", + "decoder1.0.block.2.running_mean", + "decoder1.0.block.2.running_var", + "decoder1.1.block.2.num_batches_tracked", + "decoder1.1.block.2.running_mean", + "decoder1.1.block.2.running_var", + "decoder1.2.block.2.num_batches_tracked", + "decoder1.2.block.2.running_mean", + "decoder1.2.block.2.running_var", + "decoder2.0.block.2.num_batches_tracked", + "decoder2.0.block.2.running_mean", + "decoder2.0.block.2.running_var", + "decoder2.1.block.2.num_batches_tracked", + "decoder2.1.block.2.running_mean", + "decoder2.1.block.2.running_var", + "decoder3.0.block.2.num_batches_tracked", + "decoder3.0.block.2.running_mean", + "decoder3.0.block.2.running_var", + "hv_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.0.block.1.running_mean", + "hv_map_decoder.decoder0_header.0.block.1.running_var", + "hv_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder0_header.1.block.1.running_mean", + "hv_map_decoder.decoder0_header.1.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder1_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder2_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.0.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.1.block.1.running_var", + "hv_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "hv_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder0_header.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_binary_map_decoder.decoder3_upsampler.2.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder0_header.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder1_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder2_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.0.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.1.block.1.running_var", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.num_batches_tracked", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_mean", + "nuclei_type_maps_decoder.decoder3_upsampler.2.block.1.running_var" + ], + "mutable_buffer_tensor_count": 105, + "nuclei_types": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "num_nuclei_classes": 6, + "num_tissue_classes": 1, + "original_config_path": "config.yaml", + "original_run_dir": "2026-06-30T232731_sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "original_run_name": "sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "run_name": "sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN", + "section_counts": { + "adapter_state_dict": 296, + "mutable_buffer_state_dict": 105 + }, + "source_checkpoint": "model_best.pth", + "source_config_filename": "training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "source_config_sha256": "e8817fa5a380226f2e1231e3eb58a4cc1c31e02aa6adf4ee486a4ca042b07369", + "source_filename": "sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "split": "spatial", + "tissue": "tonsil", + "tissue_types": { + "Tonsil": 0 + }, + "total_parameter_count": 707644395, + "trainable_parameter_count": 7908779, + "trainable_params": 7908779, + "trainable_ratio": 1.1176205246421826, + "trainable_ratio_percent": 1.1176205246421826, + "vera": null +} diff --git a/adapters/tissue_specific/tonsil/seed43/adapter_model.safetensors b/adapters/tissue_specific/tonsil/seed43/adapter_model.safetensors new file mode 100644 index 0000000000000000000000000000000000000000..59f823d1d99a78639ab28bda8c06c60163a66a4a --- /dev/null +++ b/adapters/tissue_specific/tonsil/seed43/adapter_model.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ffecf88503c77444a420fac60be91c9ecfd30c87142df6c59a8d6cf8b06103d +size 31812092 diff --git a/adapters/tissue_specific/tonsil/seed43/checksums.json b/adapters/tissue_specific/tonsil/seed43/checksums.json new file mode 100644 index 0000000000000000000000000000000000000000..856c4a023c134e2d8fc6cb2acb4a44d2aed455c2 --- /dev/null +++ b/adapters/tissue_specific/tonsil/seed43/checksums.json @@ -0,0 +1,14 @@ +{ + "exported": { + "adapter_config.json": "055f28b48de5e8f56f7a99966a6cd7141acacec3b1481b80d9782fab139ec3c0", + "adapter_model.safetensors": "6ffecf88503c77444a420fac60be91c9ecfd30c87142df6c59a8d6cf8b06103d" + }, + "source": { + "path": "sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "sha256": "a8d8918adebd3fe0f67a3c58c8f0687947dfcba17dc2c155779d129ffdfd29bf" + }, + "source_config": { + "path": "training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "sha256": "e8817fa5a380226f2e1231e3eb58a4cc1c31e02aa6adf4ee486a4ca042b07369" + } +} diff --git a/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d7b999523656065cb4ec1c64f8c2f60f0ca962a4 --- /dev/null +++ b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,85 @@ +adapters: + adapter_type: fullft + +logging: + mode: offline + project: sthelar40x_kidney_liver_tonsil_5class_ablation + notes: Full fine-tuning on the leakage-aware Kidney+Liver+Tonsil 5-class spatial dataset. + log_comment: sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, kidney, liver, tonsil, multi_tissue, spatial, margin128, 5class, fullft, lr1e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] + diff --git a/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed43_KEEPALL_FISHER.yaml b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed43_KEEPALL_FISHER.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d5e947856d212ed1abf3daeda3432b9ebf8a0171 --- /dev/null +++ b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed43_KEEPALL_FISHER.yaml @@ -0,0 +1,85 @@ +adapters: + adapter_type: fullft + +logging: + mode: offline + project: sthelar40x_kidney_liver_tonsil_5class_ablation + notes: Full fine-tuning on the leakage-aware Kidney+Liver+Tonsil 5-class spatial dataset with seed43 and all epoch checkpoints retained for Fisher drift. + log_comment: sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed43_KEEPALL_FISHER + tags: [sthelar, 40x, kidney, liver, tonsil, multi_tissue, spatial, margin128, 5class, fullft, lr1e-5, e10, seed43, keepall, fisher] + wandb_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed43_KEEPALL_FISHER/wandb + log_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_fullft_lr1e-5_e10_seed43_KEEPALL_FISHER/log + level: debug + log_images: false + +random_seed: 43 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true + +checkpointing: + save_best: true + save_last: true + keep_last_n: 10 + save_every: 1 + delete_intermediate_checkpoints: false + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] + diff --git a/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_klt_final_heads_only_frozen_encoder_decoder_e10_seed42.yaml b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_klt_final_heads_only_frozen_encoder_decoder_e10_seed42.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2d5e30c3d95d5d19223265e0d0bc63433d64ea94 --- /dev/null +++ b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_klt_final_heads_only_frozen_encoder_decoder_e10_seed42.yaml @@ -0,0 +1,124 @@ +adapters: + adapter_type: final_heads_only +logging: + mode: offline + project: sthelar40x_kidney_liver_tonsil_5class_ablation + notes: Final NP/HV/NT decoder 1x1 heads only on the leakage-aware Kidney+Liver+Tonsil + 5-class spatial dataset. Encoder base, shared decoder, decoder bodies, and classifier + head are frozen. + log_comment: sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_klt_final_heads_only_frozen_encoder_decoder_e10_seed42 + tags: + - sthelar + - 40x + - kidney + - liver + - tonsil + - multi_tissue + - spatial + - margin128 + - 5class + - final_heads_only + - frozen_encoder + - frozen_decoder_body + - lr5e-5 + - e10 + - seed42 + wandb_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_klt_final_heads_only_frozen_encoder_decoder_e10_seed42/wandb + log_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_klt_final_heads_only_frozen_encoder_decoder_e10_seed42/log + level: debug + log_images: false +random_seed: 42 +gpu: 0 +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: + - train + val_folds: + - valid + test_folds: + - test + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: + - 0.85 + - 0.85 + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true +transformations: + randomrotate90: + p: 0.5 + horizontalflip: + p: 0.5 + verticalflip: + p: 0.5 + downscale: + p: 0.5 + scale: 0.2 + blur: + p: 0.5 + blur_limit: 10 + gaussnoise: + p: 0.5 + var_limit: 10 + colorjitter: + p: 0.5 + scale_setting: 0.25 + scale_color: 0.1 + superpixels: + p: 0.5 + zoomblur: + p: 0.5 + randomsizedcrop: + p: 0.5 + elastictransform: + p: 0.5 + normalize: + mean: + - 0.5 + - 0.5 + - 0.5 + std: + - 0.5 + - 0.5 + - 0.5 +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: + - 0.45 + - 0.6 + - 0.7 + - 0.8 diff --git a/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6353a04038c33b7f2013bcbff6f2002bfb30b6ae --- /dev/null +++ b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,102 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: [q, v] + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 + +logging: + mode: offline + project: sthelar40x_kidney_liver_tonsil_5class_ablation + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the leakage-aware Kidney+Liver+Tonsil 5-class spatial dataset. + log_comment: sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, kidney, liver, tonsil, multi_tissue, spatial, margin128, 5class, lora_adaptformer, rank8, red16, decoder_heads_only, lr5e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +adapter_export: + enabled: true + output_dir: adapters + format: pth + export_best: true + export_last: false + verify_load: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] + diff --git a/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..dccd1932b288fe8030e4525920b5ffc92a4edeed --- /dev/null +++ b/configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml @@ -0,0 +1,102 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: [q, v] + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 + +logging: + mode: offline + project: sthelar40x_kidney_liver_tonsil_5class_ablation + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the leakage-aware Kidney+Liver+Tonsil 5-class spatial dataset, seed43. + log_comment: sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN + tags: [sthelar, 40x, kidney, liver, tonsil, multi_tissue, spatial, margin128, 5class, lora_adaptformer, rank8, red16, decoder_heads_only, lr5e-5, e10, seed43, clean] + wandb_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN/wandb + log_dir: run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN/log + level: debug + log_images: false + +random_seed: 43 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +adapter_export: + enabled: true + output_dir: adapters + format: pth + export_best: true + export_last: false + verify_load: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] + diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_breast_5class_spatial_margin128_cap50000.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_breast_5class_spatial_margin128_cap50000.yaml new file mode 100644 index 0000000000000000000000000000000000000000..598317727e40763a790ae13ab028a9b6e986b16f --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_breast_5class_spatial_margin128_cap50000.yaml @@ -0,0 +1,46 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_breast_5class_spatial_margin128_cap50000 +tissue_name: Breast +tissue: breast +slide_ids: + - breast_s0 + - breast_s1 +strategy: spatial +train_slides: + - breast_s0 + - breast_s1 +valid_slides: [] +test_slides: [] +split_axis: x +boundary_margin: 128 +train_frac: 0.7 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 +max_patches_per_slide: 50000 +max_per_split: null +random_seed: 42 +overwrite: false +keep_tmp: false +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Blood_vessel: Stromal + Fibroblast_Myofibroblast: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other +fallback_class: Other diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_colon_5class_spatial_margin128_cap50000.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_colon_5class_spatial_margin128_cap50000.yaml new file mode 100644 index 0000000000000000000000000000000000000000..08bbf6aa0749b7b75df9019406684e30f6767c1b --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_colon_5class_spatial_margin128_cap50000.yaml @@ -0,0 +1,46 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_colon_5class_spatial_margin128_cap50000 +tissue_name: Colon +tissue: colon +slide_ids: + - colon_s1 + - colon_s2 +strategy: spatial +train_slides: + - colon_s1 + - colon_s2 +valid_slides: [] +test_slides: [] +split_axis: x +boundary_margin: 128 +train_frac: 0.7 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 +max_patches_per_slide: 50000 +max_per_split: null +random_seed: 42 +overwrite: false +keep_tmp: false +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Blood_vessel: Stromal + Fibroblast_Myofibroblast: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other +fallback_class: Other diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_kidney_5class_spatial_margin128.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_kidney_5class_spatial_margin128.yaml new file mode 100644 index 0000000000000000000000000000000000000000..74219a14c38b9fa59b1b2fbca81872193c167cf0 --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_kidney_5class_spatial_margin128.yaml @@ -0,0 +1,47 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_kidney_5class_spatial_margin128 +tissue_name: Kidney +tissue: kidney +slide_ids: + - kidney_s0 + - kidney_s1 +strategy: spatial +train_slides: + - kidney_s0 + - kidney_s1 +valid_slides: [] +test_slides: [] +split_axis: x +boundary_margin: 128 +train_frac: 0.7 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 +max_patches_per_slide: null +max_per_split: null +random_seed: 42 +overwrite: false +keep_tmp: false +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Blood_vessel: Stromal + Fibroblast_Myofibroblast: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other +fallback_class: Other + diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128.yaml new file mode 100644 index 0000000000000000000000000000000000000000..74128749a7d7e0bbca89c80d748f23dbc5d4fc7f --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128.yaml @@ -0,0 +1,54 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128 + +tissue_name: KidneyLiverTonsil +tissue: null + +slide_ids: + - kidney_s0 + - kidney_s1 + - liver_s0 + - liver_s1 + - tonsil_s0 + - tonsil_s1 + +strategy: spatial +split_axis: x +boundary_margin: 128 + +train_frac: 0.70 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 + +max_patches_per_slide: 10000 +max_per_split: null +random_seed: 42 +overwrite: true +keep_tmp: false + +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null + +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 + +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Fibroblast_Myofibroblast: Stromal + Blood_vessel: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other + +fallback_class: Other diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_liver_5class_spatial_margin128.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_liver_5class_spatial_margin128.yaml new file mode 100644 index 0000000000000000000000000000000000000000..443459896ac245169bff98cc2b87fa77fd83aa4c --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_liver_5class_spatial_margin128.yaml @@ -0,0 +1,47 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_liver_5class_spatial_margin128 +tissue_name: Liver +tissue: liver +slide_ids: + - liver_s0 + - liver_s1 +strategy: spatial +train_slides: + - liver_s0 + - liver_s1 +valid_slides: [] +test_slides: [] +split_axis: x +boundary_margin: 128 +train_frac: 0.7 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 +max_patches_per_slide: null +max_per_split: null +random_seed: 42 +overwrite: false +keep_tmp: false +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Blood_vessel: Stromal + Fibroblast_Myofibroblast: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other +fallback_class: Other + diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_lung_5class_spatial_margin128_cap50000.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_lung_5class_spatial_margin128_cap50000.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e8a314c9f3ccf51d84f31daf29e44635b76b1d8c --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_lung_5class_spatial_margin128_cap50000.yaml @@ -0,0 +1,46 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_lung_5class_spatial_margin128_cap50000 +tissue_name: Lung +tissue: lung +slide_ids: + - lung_s1 + - lung_s3 +strategy: spatial +train_slides: + - lung_s1 + - lung_s3 +valid_slides: [] +test_slides: [] +split_axis: x +boundary_margin: 128 +train_frac: 0.7 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 +max_patches_per_slide: 50000 +max_per_split: null +random_seed: 42 +overwrite: false +keep_tmp: false +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Blood_vessel: Stromal + Fibroblast_Myofibroblast: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other +fallback_class: Other diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_ovary_5class_spatial_margin128.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_ovary_5class_spatial_margin128.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b9a3134fd3d709521ccfa2661239e41df7a1f815 --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_ovary_5class_spatial_margin128.yaml @@ -0,0 +1,47 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_ovary_5class_spatial_margin128 +tissue_name: Ovary +tissue: ovary +slide_ids: + - ovary_s0 + - ovary_s1 +strategy: spatial +train_slides: + - ovary_s0 + - ovary_s1 +valid_slides: [] +test_slides: [] +split_axis: x +boundary_margin: 128 +train_frac: 0.7 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 +max_patches_per_slide: null +max_per_split: null +random_seed: 42 +overwrite: false +keep_tmp: false +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Blood_vessel: Stromal + Fibroblast_Myofibroblast: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other +fallback_class: Other + diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_pancreatic_5class_spatial_margin128_cap50000.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_pancreatic_5class_spatial_margin128_cap50000.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a4e37f56c473d2f47abe4389711f30bf2fa32c80 --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_pancreatic_5class_spatial_margin128_cap50000.yaml @@ -0,0 +1,46 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_pancreatic_5class_spatial_margin128_cap50000 +tissue_name: Pancreatic +tissue: pancreatic +slide_ids: + - pancreatic_s0 + - pancreatic_s1 +strategy: spatial +train_slides: + - pancreatic_s0 + - pancreatic_s1 +valid_slides: [] +test_slides: [] +split_axis: x +boundary_margin: 128 +train_frac: 0.7 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 +max_patches_per_slide: 50000 +max_per_split: null +random_seed: 42 +overwrite: false +keep_tmp: false +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Blood_vessel: Stromal + Fibroblast_Myofibroblast: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other +fallback_class: Other diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_skin_5class_spatial_margin128_cap50000.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_skin_5class_spatial_margin128_cap50000.yaml new file mode 100644 index 0000000000000000000000000000000000000000..11e24210ef26c1255135e0f0f7608e2ea72a767d --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_skin_5class_spatial_margin128_cap50000.yaml @@ -0,0 +1,46 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_skin_5class_spatial_margin128_cap50000 +tissue_name: Skin +tissue: skin +slide_ids: + - skin_s1 + - skin_s2 +strategy: spatial +train_slides: + - skin_s1 + - skin_s2 +valid_slides: [] +test_slides: [] +split_axis: x +boundary_margin: 128 +train_frac: 0.7 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 +max_patches_per_slide: 50000 +max_per_split: null +random_seed: 42 +overwrite: false +keep_tmp: false +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Blood_vessel: Stromal + Fibroblast_Myofibroblast: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other +fallback_class: Other diff --git a/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_tonsil_5class_spatial_margin128_cap50000.yaml b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_tonsil_5class_spatial_margin128_cap50000.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e33e60aa5b3cb13a5101d44509d48d4330fd4341 --- /dev/null +++ b/configs/release/compayl2026/preprocessing/preprocessing_sthelar40x_tonsil_5class_spatial_margin128_cap50000.yaml @@ -0,0 +1,46 @@ +sthelar_root: ${STHELAR_ROOT} +output_root: ${DATA_ROOT}/sthelar40x_tonsil_5class_spatial_margin128_cap50000 +tissue_name: Tonsil +tissue: tonsil +slide_ids: + - tonsil_s0 + - tonsil_s1 +strategy: spatial +train_slides: + - tonsil_s0 + - tonsil_s1 +valid_slides: [] +test_slides: [] +split_axis: x +boundary_margin: 128 +train_frac: 0.7 +valid_frac: 0.15 +test_frac: 0.15 +train_frac_inside_train_slide: 0.85 +valid_frac_inside_train_slide: 0.15 +max_patches_per_slide: 50000 +max_per_split: null +random_seed: 42 +overwrite: false +keep_tmp: false +label_mode: 5class +label_column: cells_final_label_group +ignore_labels: null +nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 +label_mapping: + T_NK: Immune + B_Plasma: Immune + Myeloid: Immune + Blood_vessel: Stromal + Fibroblast_Myofibroblast: Stromal + Epithelial: Epithelial + Melanocyte: Melanocyte + Specialized: Other + Other: Other +fallback_class: Other diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_breast_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_breast_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c1859aebfaf7d6a3c7133c5138a4a9e198af0d07 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_breast_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,84 @@ +adapters: + adapter_type: fullft + +logging: + mode: offline + project: sthelar40x_tissue_specific_fullft + notes: Full fine-tuning on the STHELAR 40x breast 5-class spatial margin128 cap50000 dataset. + log_comment: sthelar40x_breast_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, breast, tissue_specific, spatial_margin128, margin128, cap50000, 5class, fullft, lr1e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_breast_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_breast_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_breast_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..e50f8f4719dcd210a50f2542ec208274e294fb19 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,101 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: [q, v] + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 + +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the STHELAR 40x breast 5-class spatial margin128 cap50000 dataset. + log_comment: sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, breast, tissue_specific, spatial_margin128, margin128, cap50000, 5class, lora_adaptformer, rank8, red16, decoder_heads_only, lr5e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_breast_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +adapter_export: + enabled: true + output_dir: adapters + format: pth + export_best: true + export_last: false + verify_load: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_colon_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_colon_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3e188cf0a59b1af24005d88d335f128bc28656a0 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_colon_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,84 @@ +adapters: + adapter_type: fullft + +logging: + mode: offline + project: sthelar40x_tissue_specific_fullft + notes: Full fine-tuning on the STHELAR 40x colon 5-class spatial margin128 cap50000 dataset. + log_comment: sthelar40x_colon_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, colon, tissue_specific, spatial_margin128, margin128, cap50000, 5class, fullft, lr1e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_colon_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_colon_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_colon_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..87e7e8ff0358740e90e5442e420aa48b1c44c052 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,101 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: [q, v] + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 + +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the STHELAR 40x colon 5-class spatial margin128 cap50000 dataset. + log_comment: sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, colon, tissue_specific, spatial_margin128, margin128, cap50000, 5class, lora_adaptformer, rank8, red16, decoder_heads_only, lr5e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_colon_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +adapter_export: + enabled: true + output_dir: adapters + format: pth + export_best: true + export_last: false + verify_load: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..245d263dff5cbeaf0ddecd71b48c5eb72a571e9b --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,84 @@ +adapters: + adapter_type: fullft + +logging: + mode: offline + project: sthelar40x_tissue_specific_fullft + notes: Full fine-tuning on the STHELAR 40x kidney 5-class spatial margin128 dataset. + log_comment: sthelar40x_kidney_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, kidney, tissue_specific, spatial_margin128, margin128, 5class, fullft, lr1e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_kidney_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_kidney_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_kidney_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2b71795d7fbbfff79ad8034078803d2d76a9d4ed --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,101 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: [q, v] + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 + +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the STHELAR 40x kidney 5-class spatial margin128 dataset. + log_comment: sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, kidney, tissue_specific, spatial_margin128, margin128, 5class, lora_adaptformer, rank8, red16, decoder_heads_only, lr5e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_kidney_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +adapter_export: + enabled: true + output_dir: adapters + format: pth + export_best: true + export_last: false + verify_load: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c630a4b30047ff5dc2d767b8b64b251648d6c2e3 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml @@ -0,0 +1,141 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: + - q + - v + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the + STHELAR 40x kidney 5-class spatial margin128 dataset, seed43. + log_comment: sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN + tags: + - sthelar + - 40x + - kidney + - tissue_specific + - spatial_margin128 + - margin128 + - 5class + - lora_adaptformer + - rank8 + - red16 + - decoder_heads_only + - lr5e-5 + - e10 + - seed43 + - clean + wandb_dir: run/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN/wandb + log_dir: run/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN/log + level: debug + log_images: false +random_seed: 43 +gpu: 0 +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_kidney_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: + - train + val_folds: + - valid + test_folds: + - test + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: + - 0.85 + - 0.85 + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false +checkpointing: + save_best: true + save_last: false + keep_last_n: 0 + save_every: 999 + delete_intermediate_checkpoints: true +adapter_export: + enabled: true + output_dir: adapters/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_heads_only_seed43 + format: pth + export_best: true + export_last: false + verify_load: true +transformations: + randomrotate90: + p: 0.5 + horizontalflip: + p: 0.5 + verticalflip: + p: 0.5 + downscale: + p: 0.5 + scale: 0.2 + blur: + p: 0.5 + blur_limit: 10 + gaussnoise: + p: 0.5 + var_limit: 10 + colorjitter: + p: 0.5 + scale_setting: 0.25 + scale_color: 0.1 + superpixels: + p: 0.5 + zoomblur: + p: 0.5 + randomsizedcrop: + p: 0.5 + elastictransform: + p: 0.5 + normalize: + mean: + - 0.5 + - 0.5 + - 0.5 + std: + - 0.5 + - 0.5 + - 0.5 +eval_checkpoint: model_best.pth +inference: + qc_jaccard_thresholds: + - 0.45 + - 0.6 + - 0.7 + - 0.8 diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_liver_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_liver_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b0fc1ee770cd30f4024b97d1d58f58681b57408f --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_liver_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,84 @@ +adapters: + adapter_type: fullft + +logging: + mode: offline + project: sthelar40x_tissue_specific_fullft + notes: Full fine-tuning on the STHELAR 40x liver 5-class spatial margin128 dataset. + log_comment: sthelar40x_liver_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, liver, tissue_specific, spatial_margin128, margin128, 5class, fullft, lr1e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_liver_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_liver_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_liver_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..20908397f27ff558111e8c6c763022398971d6e3 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,101 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: [q, v] + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 + +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the STHELAR 40x liver 5-class spatial margin128 dataset. + log_comment: sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, liver, tissue_specific, spatial_margin128, margin128, 5class, lora_adaptformer, rank8, red16, decoder_heads_only, lr5e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_liver_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +adapter_export: + enabled: true + output_dir: adapters + format: pth + export_best: true + export_last: false + verify_load: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_lung_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_lung_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ab611acb9d4ddffcf1643196bbcf839ca579730c --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_lung_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,84 @@ +adapters: + adapter_type: fullft + +logging: + mode: offline + project: sthelar40x_tissue_specific_fullft + notes: Full fine-tuning on the STHELAR 40x lung 5-class spatial margin128 cap50000 dataset. + log_comment: sthelar40x_lung_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, lung, tissue_specific, spatial_margin128, margin128, cap50000, 5class, fullft, lr1e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_lung_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_lung_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_lung_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2cd00dde68bc82f3f151d56c1a4447d2e75b47b8 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,101 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: [q, v] + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 + +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the STHELAR 40x lung 5-class spatial margin128 cap50000 dataset. + log_comment: sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, lung, tissue_specific, spatial_margin128, margin128, cap50000, 5class, lora_adaptformer, rank8, red16, decoder_heads_only, lr5e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_lung_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +adapter_export: + enabled: true + output_dir: adapters + format: pth + export_best: true + export_last: false + verify_load: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_ovary_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_ovary_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..6e1f5267bfa3234a2b273f56976df8e2c2161b87 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_ovary_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,84 @@ +adapters: + adapter_type: fullft + +logging: + mode: offline + project: sthelar40x_tissue_specific_fullft + notes: Full fine-tuning on the STHELAR 40x ovary 5-class spatial margin128 dataset. + log_comment: sthelar40x_ovary_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, ovary, tissue_specific, spatial_margin128, margin128, 5class, fullft, lr1e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_ovary_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_ovary_5class_spatial_margin128_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_ovary_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cb03979839aba6b17872738f8bc23371131d84f3 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,101 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: [q, v] + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 + +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the STHELAR 40x ovary 5-class spatial margin128 dataset. + log_comment: sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN + tags: [sthelar, 40x, ovary, tissue_specific, spatial_margin128, margin128, 5class, lora_adaptformer, rank8, red16, decoder_heads_only, lr5e-5, e10, seed42, clean] + wandb_dir: run/sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + +random_seed: 42 +gpu: 0 + +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_ovary_5class_spatial_margin128 + label_mode: 5class + split: spatial + train_folds: [train] + val_folds: [valid] + test_folds: [test] + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 + +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false + +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: [0.85, 0.85] + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false + +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true + +adapter_export: + enabled: true + output_dir: adapters + format: pth + export_best: true + export_last: false + verify_load: true + +transformations: + randomrotate90: {p: 0.5} + horizontalflip: {p: 0.5} + verticalflip: {p: 0.5} + downscale: {p: 0.5, scale: 0.2} + blur: {p: 0.5, blur_limit: 10} + gaussnoise: {p: 0.5, var_limit: 10} + colorjitter: {p: 0.5, scale_setting: 0.25, scale_color: 0.1} + superpixels: {p: 0.5} + zoomblur: {p: 0.5} + randomsizedcrop: {p: 0.5} + elastictransform: {p: 0.5} + normalize: + mean: [0.5, 0.5, 0.5] + std: [0.5, 0.5, 0.5] + +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: [0.45, 0.60, 0.70, 0.80] diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1929ee0ec95c07f380adf4df3ed6108d6778102b --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,121 @@ +adapters: + adapter_type: fullft +logging: + mode: offline + project: sthelar40x_tissue_specific_fullft + notes: Full fine-tuning on the STHELAR 40x pancreatic 5-class spatial margin128 + cap50000 dataset. + log_comment: sthelar40x_pancreatic_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN + tags: + - sthelar + - 40x + - pancreatic + - tissue_specific + - spatial_margin128 + - margin128 + - cap50000 + - 5class + - fullft + - lr1e-5 + - e10 + - seed42 + - clean + wandb_dir: run/sthelar40x_pancreatic_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_pancreatic_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false +random_seed: 42 +gpu: 0 +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_pancreatic_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: + - train + val_folds: + - valid + test_folds: + - test + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: + - 0.85 + - 0.85 + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true +transformations: + randomrotate90: + p: 0.5 + horizontalflip: + p: 0.5 + verticalflip: + p: 0.5 + downscale: + p: 0.5 + scale: 0.2 + blur: + p: 0.5 + blur_limit: 10 + gaussnoise: + p: 0.5 + var_limit: 10 + colorjitter: + p: 0.5 + scale_setting: 0.25 + scale_color: 0.1 + superpixels: + p: 0.5 + zoomblur: + p: 0.5 + randomsizedcrop: + p: 0.5 + elastictransform: + p: 0.5 + normalize: + mean: + - 0.5 + - 0.5 + - 0.5 + std: + - 0.5 + - 0.5 + - 0.5 +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: + - 0.45 + - 0.6 + - 0.7 + - 0.8 diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c72ded2d64f4e2b8356a738259c207e2dba1f128 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml @@ -0,0 +1,142 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: + - q + - v + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the + STHELAR 40x pancreatic 5-class spatial margin128 cap50000 dataset, seed43. + log_comment: sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN + tags: + - sthelar + - 40x + - pancreatic + - tissue_specific + - spatial_margin128 + - margin128 + - cap50000 + - 5class + - lora_adaptformer + - rank8 + - red16 + - decoder_heads_only + - lr5e-5 + - e10 + - seed43 + - clean + wandb_dir: run/sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN/wandb + log_dir: run/sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN/log + level: debug + log_images: false +random_seed: 43 +gpu: 0 +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_pancreatic_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: + - train + val_folds: + - valid + test_folds: + - test + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: + - 0.85 + - 0.85 + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false +checkpointing: + save_best: true + save_last: false + keep_last_n: 0 + save_every: 999 + delete_intermediate_checkpoints: true +adapter_export: + enabled: true + output_dir: adapters/sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_heads_only_seed43 + format: pth + export_best: true + export_last: false + verify_load: true +transformations: + randomrotate90: + p: 0.5 + horizontalflip: + p: 0.5 + verticalflip: + p: 0.5 + downscale: + p: 0.5 + scale: 0.2 + blur: + p: 0.5 + blur_limit: 10 + gaussnoise: + p: 0.5 + var_limit: 10 + colorjitter: + p: 0.5 + scale_setting: 0.25 + scale_color: 0.1 + superpixels: + p: 0.5 + zoomblur: + p: 0.5 + randomsizedcrop: + p: 0.5 + elastictransform: + p: 0.5 + normalize: + mean: + - 0.5 + - 0.5 + - 0.5 + std: + - 0.5 + - 0.5 + - 0.5 +eval_checkpoint: model_best.pth +inference: + qc_jaccard_thresholds: + - 0.45 + - 0.6 + - 0.7 + - 0.8 diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_skin_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_skin_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..32b9f956729f319502f7ce57a8e03addf679ccf7 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_skin_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,121 @@ +adapters: + adapter_type: fullft +logging: + mode: offline + project: sthelar40x_tissue_specific_fullft + notes: Full fine-tuning on the STHELAR 40x skin 5-class spatial margin128 cap50000 + dataset. + log_comment: sthelar40x_skin_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN + tags: + - sthelar + - 40x + - skin + - tissue_specific + - spatial_margin128 + - margin128 + - cap50000 + - 5class + - fullft + - lr1e-5 + - e10 + - seed42 + - clean + wandb_dir: run/sthelar40x_skin_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_skin_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false +random_seed: 42 +gpu: 0 +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_skin_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: + - train + val_folds: + - valid + test_folds: + - test + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: + - 0.85 + - 0.85 + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true +transformations: + randomrotate90: + p: 0.5 + horizontalflip: + p: 0.5 + verticalflip: + p: 0.5 + downscale: + p: 0.5 + scale: 0.2 + blur: + p: 0.5 + blur_limit: 10 + gaussnoise: + p: 0.5 + var_limit: 10 + colorjitter: + p: 0.5 + scale_setting: 0.25 + scale_color: 0.1 + superpixels: + p: 0.5 + zoomblur: + p: 0.5 + randomsizedcrop: + p: 0.5 + elastictransform: + p: 0.5 + normalize: + mean: + - 0.5 + - 0.5 + - 0.5 + std: + - 0.5 + - 0.5 + - 0.5 +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: + - 0.45 + - 0.6 + - 0.7 + - 0.8 diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..95538e06fab390ddbf7e430505dea91ab84b7b1a --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,156 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: + - q + - v + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the + STHELAR 40x skin 5-class spatial margin128 cap50000 dataset. + log_comment: sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN + tags: + - sthelar + - 40x + - skin + - tissue_specific + - spatial_margin128 + - margin128 + - cap50000 + - 5class + - lora_adaptformer + - rank8 + - red16 + - decoder_heads_only + - lr5e-5 + - e10 + - seed42 + - clean + wandb_dir: run/sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN/log + level: debug + log_images: false + run_id: rhlmsqz4 + wandb_file: rhlmsqz4 +random_seed: 42 +gpu: 0 +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_skin_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: + - train + val_folds: + - valid + test_folds: + - test + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: + - 0.85 + - 0.85 + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false +checkpointing: + save_best: true + save_last: false + keep_last_n: 0 + save_every: 999 + delete_intermediate_checkpoints: true +adapter_export: + enabled: true + output_dir: adapters/sthelar40x_skin_5class_spatial_margin128_lora_adaptformer_heads_only_seed42 + format: pth + export_best: true + export_last: false + verify_load: true +transformations: + randomrotate90: + p: 0.5 + horizontalflip: + p: 0.5 + verticalflip: + p: 0.5 + downscale: + p: 0.5 + scale: 0.2 + blur: + p: 0.5 + blur_limit: 10 + gaussnoise: + p: 0.5 + var_limit: 10 + colorjitter: + p: 0.5 + scale_setting: 0.25 + scale_color: 0.1 + superpixels: + p: 0.5 + zoomblur: + p: 0.5 + randomsizedcrop: + p: 0.5 + elastictransform: + p: 0.5 + normalize: + mean: + - 0.5 + - 0.5 + - 0.5 + std: + - 0.5 + - 0.5 + - 0.5 +eval_checkpoint: model_best.pth +inference: + qc_jaccard_thresholds: + - 0.45 + - 0.6 + - 0.7 + - 0.8 +run_sweep: false +agent: null +dataset_config: + tissue_types: + Skin: 0 + nuclei_types: + Background: 0 + Immune: 1 + Stromal: 2 + Epithelial: 3 + Melanocyte: 4 + Other: 5 diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..eadf39923a6d1cf0c5a25c2ad62779d8b65228d7 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN.yaml @@ -0,0 +1,121 @@ +adapters: + adapter_type: fullft +logging: + mode: offline + project: sthelar40x_tissue_specific_fullft + notes: Full fine-tuning on the STHELAR 40x tonsil 5-class spatial margin128 cap50000 + dataset. + log_comment: sthelar40x_tonsil_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN + tags: + - sthelar + - 40x + - tonsil + - tissue_specific + - spatial_margin128 + - margin128 + - cap50000 + - 5class + - fullft + - lr1e-5 + - e10 + - seed42 + - clean + wandb_dir: run/sthelar40x_tonsil_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/wandb + log_dir: run/sthelar40x_tonsil_5class_spatial_margin128_cap50000_fullft_lr1e-5_e10_seed42_CLEAN/log + level: debug + log_images: false +random_seed: 42 +gpu: 0 +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_tonsil_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: + - train + val_folds: + - valid + test_folds: + - test + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 0 + optimizer: AdamW + optimizer_hyperparameter: + lr: 1.0e-05 + betas: + - 0.85 + - 0.85 + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: true +checkpointing: + save_best: true + save_last: true + keep_last_n: 1 + save_every: 1 + delete_intermediate_checkpoints: true +transformations: + randomrotate90: + p: 0.5 + horizontalflip: + p: 0.5 + verticalflip: + p: 0.5 + downscale: + p: 0.5 + scale: 0.2 + blur: + p: 0.5 + blur_limit: 10 + gaussnoise: + p: 0.5 + var_limit: 10 + colorjitter: + p: 0.5 + scale_setting: 0.25 + scale_color: 0.1 + superpixels: + p: 0.5 + zoomblur: + p: 0.5 + randomsizedcrop: + p: 0.5 + elastictransform: + p: 0.5 + normalize: + mean: + - 0.5 + - 0.5 + - 0.5 + std: + - 0.5 + - 0.5 + - 0.5 +eval_checkpoint: latest_checkpoint.pth +inference: + qc_jaccard_thresholds: + - 0.45 + - 0.6 + - 0.7 + - 0.8 diff --git a/configs/release/compayl2026/tissue_specific/training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml b/configs/release/compayl2026/tissue_specific/training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml new file mode 100644 index 0000000000000000000000000000000000000000..93ba5628236b7d699d1c386c198e1196bd576089 --- /dev/null +++ b/configs/release/compayl2026/tissue_specific/training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml @@ -0,0 +1,142 @@ +adapters: + adapter_type: lora_adaptformer + decoder_train_scope: heads_only + lora: + rank: 8 + alpha: 8 + targets: + - q + - v + dropout: 0.0 + adaptformer: + activation: GELU + reduction: 16 +logging: + mode: offline + project: sthelar40x_tissue_specific_peft + notes: LoRA r8 plus AdaptFormer reduction16 and final decoder heads only on the + STHELAR 40x tonsil 5-class spatial margin128 cap50000 dataset, seed43. + log_comment: sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN + tags: + - sthelar + - 40x + - tonsil + - tissue_specific + - spatial_margin128 + - margin128 + - cap50000 + - 5class + - lora_adaptformer + - rank8 + - red16 + - decoder_heads_only + - lr5e-5 + - e10 + - seed43 + - clean + wandb_dir: run/sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN/wandb + log_dir: run/sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN/log + level: debug + log_images: false +random_seed: 43 +gpu: 0 +data: + dataset: STHELAR + dataset_path: ${DATA_ROOT}/sthelar40x_tonsil_5class_spatial_margin128_cap50000 + label_mode: 5class + split: spatial + train_folds: + - train + val_folds: + - valid + test_folds: + - test + num_nuclei_classes: 6 + num_tissue_classes: 1 + input_shape: 256 + magnification: 40 +model: + backbone: SAM-H + pretrained_encoder: null + pretrained: models/pretrained/CellViT-SAM-H-x40.pth + embed_dim: 1280 + input_channels: 3 + depth: 32 + num_heads: 16 + extract_layers: 4 + shared_decoders: false +training: + batch_size: 4 + epochs: 10 + unfreeze_epoch: 999 + optimizer: AdamW + optimizer_hyperparameter: + lr: 5.0e-05 + betas: + - 0.85 + - 0.85 + early_stopping_patience: 10 + scheduler: + scheduler_type: exponential + sampling_strategy: cell + sampling_gamma: 0.85 + mixed_precision: true + eval_every: 1 + unfreeze_encoder: false +checkpointing: + save_best: true + save_last: false + keep_last_n: 0 + save_every: 999 + delete_intermediate_checkpoints: true +adapter_export: + enabled: true + output_dir: adapters/sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_heads_only_seed43 + format: pth + export_best: true + export_last: false + verify_load: true +transformations: + randomrotate90: + p: 0.5 + horizontalflip: + p: 0.5 + verticalflip: + p: 0.5 + downscale: + p: 0.5 + scale: 0.2 + blur: + p: 0.5 + blur_limit: 10 + gaussnoise: + p: 0.5 + var_limit: 10 + colorjitter: + p: 0.5 + scale_setting: 0.25 + scale_color: 0.1 + superpixels: + p: 0.5 + zoomblur: + p: 0.5 + randomsizedcrop: + p: 0.5 + elastictransform: + p: 0.5 + normalize: + mean: + - 0.5 + - 0.5 + - 0.5 + std: + - 0.5 + - 0.5 + - 0.5 +eval_checkpoint: model_best.pth +inference: + qc_jaccard_thresholds: + - 0.45 + - 0.6 + - 0.7 + - 0.8 diff --git a/figures/architecture.png b/figures/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..b62acabb1654b7489644c0fe1c1f18d201179a5c --- /dev/null +++ b/figures/architecture.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:adf6dfc6fb1d3edeb6543c9f5945b7bd58a0dc47a7b57bd5ecbb6bd1931b959d +size 1157750 diff --git a/figures/qualitative.png b/figures/qualitative.png new file mode 100644 index 0000000000000000000000000000000000000000..5472b18944866aa995ff7ce2a2327e121923bf51 --- /dev/null +++ b/figures/qualitative.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b87f4f5c27c087b18834b9dedb7e07f99c7ae6669f6b0c5ea72ae896fd64400 +size 7338332 diff --git a/results/klt_ablation_final_with_type_metrics.csv b/results/klt_ablation_final_with_type_metrics.csv new file mode 100644 index 0000000000000000000000000000000000000000..4955b008833a4854eabe9ac01f2bc6193166484d --- /dev/null +++ b/results/klt_ablation_final_with_type_metrics.csv @@ -0,0 +1,8 @@ +method,decoder_scope,trainable_percent,mPQ_mean,mPQ_std,bPQ_mean,F1_detection_mean,type_accuracy_mean,macro_type_f1_mean,macro_type_f1_present_classes_mean,macro_type_f1_without_other_mean,mPQ_recovery_vs_fullft +Frozen CellViT,frozen,0.0,0.002622,,0.446763,0.816732,0.022088,0.009588,0.011984,0.003384,0.008481 +FullFT,all,100.0,0.309216,0.004826,0.514735,0.828604,0.781414,0.53289,0.666112,0.752926,1.0 +LoRA+AF,heads_only,1.1176,0.293647,0.004668,0.504263,0.834541,0.783457,0.462629,0.578286,0.749367,0.949648 +LoRA+AF,last_stage,1.1674,0.295953,0.002676,0.502615,0.82593,0.77718,0.523269,0.654086,0.751537,0.957105 +LoRA+AF,conv_adapters,1.1947,0.288389,0.002882,0.493081,0.829267,0.772628,0.521152,0.651441,0.747425,0.932645 +VeRA+AF,heads_only,0.9458,0.287031,,0.493231,0.832649,0.769965,0.463217,0.579022,0.737027,0.928252 +VeRA+AF,conv_adapters,1.0231,0.284855,0.001254,0.491741,0.828732,0.776432,0.521732,0.652165,0.746854,0.921216 diff --git a/results/tissue_specific_compayl2026_final.csv b/results/tissue_specific_compayl2026_final.csv new file mode 100644 index 0000000000000000000000000000000000000000..1c63153d09969792df625eaaaefc55dca65fc809 --- /dev/null +++ b/results/tissue_specific_compayl2026_final.csv @@ -0,0 +1,11 @@ +tissue,fullft_mpq,peft_mpq,mpq_recovery_percent,fullft_f1_detection,peft_f1_detection,fullft_f1_type,peft_f1_type,peft_run_policy +Liver,0.4124,0.3925,95.2,0.8839,0.8916,0.6661,0.5673,seed42 +Kidney,0.2592,0.2484,95.8,0.8285,0.8332,0.5222,0.5013,mean_seed42_seed43 +Ovary,0.3195,0.2999,93.9,0.8311,0.8414,0.6455,0.6182,seed42 +Breast,0.3481,0.3348,96.2,0.8176,0.8424,0.6232,0.5873,seed42 +Colon,0.2057,0.2047,99.5,0.7876,0.7904,0.6910,0.6076,seed42 +Lung,0.3225,0.3015,93.5,0.8511,0.8637,0.6683,0.6271,seed42 +Pancreatic,0.2118,0.2389,112.8,0.6802,0.7383,0.6965,0.6682,seed43 +Skin,0.2107,0.2239,106.3,0.7006,0.7250,0.6892,0.6778,seed42 +Tonsil,0.2498,0.2346,93.9,0.8203,0.8226,0.6752,0.5955,seed43 +Mean,0.2822,0.2755,97.6,0.8001,0.8165,0.6530,0.6056,across_tissues diff --git a/scripts/export_adapter_safetensors.py b/scripts/export_adapter_safetensors.py new file mode 100644 index 0000000000000000000000000000000000000000..43e8c279666d741ffefc17dafaf6da1bb6e37948 --- /dev/null +++ b/scripts/export_adapter_safetensors.py @@ -0,0 +1,282 @@ +#!/usr/bin/env python3 +"""Safely convert a CellViT adapter-only .pth file to safetensors. + +The source checkpoint is loaded on CPU. PyTorch's ``weights_only`` loader is +used when the installed PyTorch exposes it. Output is a new directory +containing ``adapter_model.safetensors``, ``adapter_config.json``, and +``checksums.json``; existing output files are never overwritten. +""" + +from __future__ import annotations + +import argparse +import codecs +import hashlib +import inspect +import json +import math +import re +from pathlib import Path +from typing import Any + +import torch +import numpy as np +from safetensors.torch import load_file, save_file + + +ALLOWED_TOP_LEVEL_KEYS = { + "format", + "format_version", + "metadata", + "adapter_state_dict", + "mutable_buffer_state_dict", +} +SECTION_NAMES = ("adapter_state_dict", "mutable_buffer_state_dict") +COMPONENT_PATTERNS = { + "lora": ("adapter_q_down", "adapter_q_up", "adapter_v_down", "adapter_v_up"), + "adaptformer": (".mlp.adapter_",), + "np_head": ("nuclei_binary_map_decoder.decoder0_header",), + "hv_head": ("hv_map_decoder.decoder0_header",), + "nt_head": ("nuclei_type_maps_decoder.decoder0_header",), +} +PRIVATE_METADATA_PATTERNS = ( + re.compile(r"(?:^|[\\/])gpfs[\\/]", re.IGNORECASE), + re.compile(r"(?:^|[\\/])home[\\/]", re.IGNORECASE), + re.compile(r"(?:^|[\\/])Users[\\/]"), + re.compile(r"(?:^|[\\/])Volumes[\\/]"), + re.compile(r"taddeial", re.IGNORECASE), + re.compile(r"ruche", re.IGNORECASE), +) + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def load_pth_safely(path: Path) -> dict[str, Any]: + kwargs: dict[str, Any] = {"map_location": "cpu"} + if "weights_only" in inspect.signature(torch.load).parameters: + kwargs["weights_only"] = True + if kwargs.get("weights_only") and hasattr(torch.serialization, "safe_globals"): + numpy_globals = [ + np.core.multiarray.scalar, + np.dtype, + type(np.dtype(np.float64)), + codecs.encode, + ] + with torch.serialization.safe_globals(numpy_globals): + payload = torch.load(str(path), **kwargs) + else: + payload = torch.load(str(path), **kwargs) + if not isinstance(payload, dict): + raise TypeError("Checkpoint top level must be a dictionary") + unexpected = set(payload) - ALLOWED_TOP_LEVEL_KEYS + missing = ALLOWED_TOP_LEVEL_KEYS - set(payload) + if unexpected or missing: + raise ValueError( + f"Unexpected checkpoint schema; missing={sorted(missing)}, " + f"unexpected={sorted(unexpected)}" + ) + if payload["format"] != "cellvit_adapter_checkpoint": + raise ValueError(f"Unexpected format: {payload['format']!r}") + if not isinstance(payload["metadata"], dict): + raise TypeError("metadata must be a dictionary") + return payload + + +def collect_tensors(payload: dict[str, Any]) -> tuple[dict[str, torch.Tensor], dict[str, Any]]: + tensors: dict[str, torch.Tensor] = {} + shapes: dict[str, list[int]] = {} + section_counts: dict[str, int] = {} + for section in SECTION_NAMES: + state = payload[section] + if not isinstance(state, dict): + raise TypeError(f"{section} must be a dictionary") + section_counts[section] = len(state) + for key, value in state.items(): + if not isinstance(key, str): + raise TypeError(f"Non-string key in {section}: {key!r}") + if not torch.is_tensor(value): + raise TypeError( + f"Non-tensor value in {section}.{key}: {type(value).__name__}; " + "move auxiliary values to metadata so they can be exported as JSON" + ) + flat_key = f"{section}.{key}" + if flat_key in tensors: + raise ValueError(f"Duplicate flattened tensor key: {flat_key}") + tensor = value.detach().cpu().contiguous() + tensors[flat_key] = tensor + shapes[flat_key] = list(tensor.shape) + if not payload["adapter_state_dict"]: + raise ValueError("adapter_state_dict is empty") + return tensors, {"expected_tensor_shapes": shapes, "section_counts": section_counts} + + +def require_components(tensors: dict[str, torch.Tensor], expected: list[str]) -> None: + keys = tuple(tensors) + for component in expected: + patterns = COMPONENT_PATTERNS[component] + if not any(any(pattern in key for pattern in patterns) for key in keys): + raise ValueError(f"Missing expected component keys for {component}") + + +def ensure_json(value: Any) -> None: + try: + json.dumps(value, allow_nan=False) + except (TypeError, ValueError) as exc: + raise TypeError( + "Checkpoint metadata is not strict JSON; normalize it before release" + ) from exc + + +def sanitize_metadata(value: Any, key: str = "") -> Any: + """Make metadata public/JSON-safe without retaining local absolute paths.""" + private_path_keys = { + "base_checkpoint_resolved", + "original_run_dir", + "original_config_path", + "config_path", + "source_checkpoint", + } + if key in private_path_keys: + if value in (None, ""): + return None + return Path(str(value)).name + if isinstance(value, dict): + return {str(item_key): sanitize_metadata(item, str(item_key)) for item_key, item in value.items()} + if isinstance(value, (list, tuple)): + return [sanitize_metadata(item) for item in value] + if torch.is_tensor(value): + raise TypeError(f"Tensor found in metadata at {key!r}; tensors belong in a state dictionary") + if hasattr(value, "item") and callable(value.item): + value = value.item() + if isinstance(value, float) and not math.isfinite(value): + return None + if isinstance(value, Path): + value = str(value) + if isinstance(value, str) and Path(value).is_absolute(): + return Path(value).name + return value + + +def reject_private_metadata(value: Any, location: str = "metadata") -> None: + """Reject paths/usernames that must not enter a public adapter package.""" + if isinstance(value, dict): + for key, item in value.items(): + reject_private_metadata(item, f"{location}.{key}") + elif isinstance(value, list): + for index, item in enumerate(value): + reject_private_metadata(item, f"{location}[{index}]") + elif isinstance(value, str): + if Path(value).is_absolute() or re.match(r"^[A-Za-z]:[\\/]", value): + raise ValueError(f"Absolute path remains in public metadata at {location}") + if any(pattern.search(value) for pattern in PRIVATE_METADATA_PATTERNS): + raise ValueError(f"Private path/username remains in public metadata at {location}") + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("source", type=Path, help="Adapter-only .pth checkpoint") + parser.add_argument("output_dir", type=Path, help="New or empty release directory") + parser.add_argument("--adapter-id", required=True, help="Stable public adapter ID") + parser.add_argument( + "--source-config", + required=True, + type=Path, + help="Exact curated YAML config associated with this adapter", + ) + parser.add_argument( + "--base-checkpoint-sha256", + required=True, + help="Verified SHA256 of the required base checkpoint", + ) + parser.add_argument( + "--expected-components", + nargs="+", + choices=sorted(COMPONENT_PATTERNS), + default=["lora", "adaptformer", "np_head", "hv_head", "nt_head"], + help="Components which must be present (defaults to selected STHELAR-Adapt method)", + ) + return parser.parse_args() + + +def main() -> None: + args = parse_args() + source = args.source.expanduser().resolve() + source_config = args.source_config.expanduser().resolve() + output_dir = args.output_dir.expanduser().resolve() + if not source.is_file() or source.suffix.lower() != ".pth": + raise FileNotFoundError(f"Expected a .pth source file: {source}") + if not source_config.is_file() or source_config.suffix.lower() not in {".yaml", ".yml"}: + raise FileNotFoundError(f"Expected a YAML source config: {source_config}") + if not re.fullmatch(r"[a-z0-9][a-z0-9_/-]*", args.adapter_id): + raise ValueError(f"Invalid public adapter ID: {args.adapter_id!r}") + if not re.fullmatch(r"[0-9a-f]{64}", args.base_checkpoint_sha256): + raise ValueError("--base-checkpoint-sha256 must be 64 lowercase hex characters") + output_dir.mkdir(parents=True, exist_ok=True) + weights_path = output_dir / "adapter_model.safetensors" + config_path = output_dir / "adapter_config.json" + checksums_path = output_dir / "checksums.json" + collisions = [path for path in (weights_path, config_path, checksums_path) if path.exists()] + if collisions: + raise FileExistsError(f"Refusing to overwrite: {[str(path) for path in collisions]}") + + payload = load_pth_safely(source) + tensors, structural = collect_tensors(payload) + require_components(tensors, args.expected_components) + metadata = sanitize_metadata(dict(payload["metadata"])) + metadata.update( + { + "format": payload["format"], + "format_version": payload["format_version"], + "adapter_id": args.adapter_id, + "adapter_weight_file": "adapter_model.safetensors", + "source_filename": source.name, + "source_config_filename": source_config.name, + "source_config_sha256": sha256(source_config), + "base_checkpoint_sha256": args.base_checkpoint_sha256, + "expected_components": args.expected_components, + **structural, + } + ) + ensure_json(metadata) + reject_private_metadata(metadata) + + save_file( + tensors, + str(weights_path), + metadata={ + "format": payload["format"], + "format_version": str(payload["format_version"]), + "metadata_json": json.dumps(metadata, sort_keys=True), + }, + ) + reloaded = load_file(str(weights_path), device="cpu") + if set(reloaded) != set(tensors): + raise RuntimeError("Round-trip key mismatch after safetensors save") + for key, original in tensors.items(): + if not torch.equal(original, reloaded[key]): + raise RuntimeError(f"Round-trip tensor inequality: {key}") + + config_path.write_text(json.dumps(metadata, indent=2, sort_keys=True) + "\n") + checksums = { + "source": {"path": source.name, "sha256": sha256(source)}, + "source_config": { + "path": source_config.name, + "sha256": sha256(source_config), + }, + "exported": { + "adapter_model.safetensors": sha256(weights_path), + "adapter_config.json": sha256(config_path), + }, + } + checksums_path.write_text(json.dumps(checksums, indent=2, sort_keys=True) + "\n") + print(json.dumps(checksums, indent=2, sort_keys=True)) + + +if __name__ == "__main__": + main() diff --git a/scripts/verify_released_adapter.py b/scripts/verify_released_adapter.py new file mode 100644 index 0000000000000000000000000000000000000000..2162fc3878ce19a7f6c86c247f1ce494a95b9984 --- /dev/null +++ b/scripts/verify_released_adapter.py @@ -0,0 +1,259 @@ +#!/usr/bin/env python3 +"""Verify a released STHELAR-Adapt safetensors package on CPU.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import re +import sys +from pathlib import Path + +import torch +from safetensors.torch import load_file + +SEARCH_ROOTS = [Path.cwd(), *Path(__file__).resolve().parents] +REPO_ROOT = next( + (root for root in SEARCH_ROOTS if (root / "utils" / "adapter_checkpoint.py").is_file()), + Path.cwd(), +) +sys.path.insert(0, str(REPO_ROOT)) + +COMPONENT_PATTERNS = { + "lora": ("adapter_q_down", "adapter_q_up", "adapter_v_down", "adapter_v_up"), + "adaptformer": (".mlp.adapter_",), + "np_head": ("nuclei_binary_map_decoder.decoder0_header",), + "hv_head": ("hv_map_decoder.decoder0_header",), + "nt_head": ("nuclei_type_maps_decoder.decoder0_header",), +} +EXPECTED_BASE_MODEL = "CellViT-SAM-H-x40" +REQUIRED_COMPONENTS = {"lora", "adaptformer", "np_head", "hv_head", "nt_head"} +PRIVATE_METADATA_PATTERNS = ( + re.compile(r"(?:^|[\\/])gpfs[\\/]", re.IGNORECASE), + re.compile(r"(?:^|[\\/])home[\\/]", re.IGNORECASE), + re.compile(r"(?:^|[\\/])Users[\\/]"), + re.compile(r"(?:^|[\\/])Volumes[\\/]"), + re.compile(r"taddeial", re.IGNORECASE), + re.compile(r"ruche", re.IGNORECASE), +) + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for block in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(block) + return digest.hexdigest() + + +def validate_mapping(config: dict) -> None: + mapping = config.get("label_mapping") or config.get("nuclei_types") + if not isinstance(mapping, dict) or not mapping: + raise ValueError("Missing label_mapping/nuclei_types") + normalized = {str(key): int(value) for key, value in mapping.items()} + expected_names = {"Background", "Immune", "Stromal", "Epithelial", "Melanocyte", "Other"} + if set(normalized) != expected_names: + raise ValueError(f"Unexpected five-class mapping names: {sorted(normalized)}") + if normalized["Background"] != 0 or sorted(normalized.values()) != list(range(6)): + raise ValueError("Label ids must be contiguous 0..5 with Background=0") + if int(config.get("num_nuclei_classes", -1)) != len(normalized): + raise ValueError("num_nuclei_classes does not match label mapping") + + +def reject_private_metadata(value, location="metadata") -> None: + if isinstance(value, dict): + for key, item in value.items(): + reject_private_metadata(item, f"{location}.{key}") + elif isinstance(value, list): + for index, item in enumerate(value): + reject_private_metadata(item, f"{location}[{index}]") + elif isinstance(value, str): + if Path(value).is_absolute() or re.match(r"^[A-Za-z]:[\\/]", value): + raise ValueError(f"Absolute path in released metadata at {location}") + if any(pattern.search(value) for pattern in PRIVATE_METADATA_PATTERNS): + raise ValueError(f"Private path/username in released metadata at {location}") + + +def load_into_model(config: dict, tensors: dict[str, torch.Tensor], base: Path, smoke: bool) -> dict: + from utils.adapter_checkpoint import build_model, load_adapter_state + + if not base.is_file(): + raise FileNotFoundError(base) + training_config = { + "random_seed": int(config.get("random_seed", 42)), + "data": { + "num_nuclei_classes": int(config["num_nuclei_classes"]), + "num_tissue_classes": int(config["num_tissue_classes"]), + }, + "model": {"backbone": "SAM-H", "shared_decoders": False}, + "training": {"drop_rate": 0, "regression_loss": False}, + "adapters": { + "adapter_type": config["adapter_type"], + "decoder_train_scope": config["decoder_train_scope"], + "lora": config["lora"], + "adaptformer": config["adaptformer"], + }, + } + model, load_info, _ = build_model(training_config, base) + sections = {"adapter_state_dict": {}, "mutable_buffer_state_dict": {}} + for flat_key, tensor in tensors.items(): + section, key = flat_key.split(".", 1) + if section not in sections: + raise ValueError(f"Unexpected safetensors section: {section}") + sections[section][key] = tensor + expected_parameter_keys = { + name for name, parameter in model.named_parameters() if parameter.requires_grad + } + actual_parameter_keys = set(sections["adapter_state_dict"]) + missing_adapter_keys = sorted(expected_parameter_keys - actual_parameter_keys) + unexpected_adapter_keys = sorted(actual_parameter_keys - expected_parameter_keys) + declared_buffer_keys = set(config.get("mutable_buffer_names", [])) + actual_buffer_keys = set(sections["mutable_buffer_state_dict"]) + missing_buffer_keys = sorted(declared_buffer_keys - actual_buffer_keys) + unexpected_buffer_keys = sorted(actual_buffer_keys - declared_buffer_keys) + if missing_adapter_keys or unexpected_adapter_keys: + raise RuntimeError( + "Adapter parameter key mismatch: " + f"missing={missing_adapter_keys[:10]}, unexpected={unexpected_adapter_keys[:10]}" + ) + if missing_buffer_keys or unexpected_buffer_keys: + raise RuntimeError( + "Mutable-buffer key mismatch: " + f"missing={missing_buffer_keys[:10]}, unexpected={unexpected_buffer_keys[:10]}" + ) + loaded = load_adapter_state(model, sections) + if len(loaded) != len(tensors): + raise RuntimeError(f"Model state load count mismatch: {len(loaded)} != {len(tensors)}") + output_shapes = {} + if smoke: + model.eval() + with torch.inference_mode(): + output = model(torch.zeros(1, 3, 256, 256)) + if not isinstance(output, dict): + raise RuntimeError(f"Forward smoke test returned {type(output).__name__}, expected dict") + output_shapes = { + key: list(value.shape) for key, value in output.items() if torch.is_tensor(value) + } + expected_output_shapes = { + "tissue_types": [1, int(config["num_tissue_classes"])], + "nuclei_binary_map": [1, 2, 256, 256], + "hv_map": [1, 2, 256, 256], + "nuclei_type_map": [1, int(config["num_nuclei_classes"]), 256, 256], + } + if output_shapes != expected_output_shapes: + raise RuntimeError( + f"Forward output mismatch: {output_shapes} != {expected_output_shapes}" + ) + return { + "base_load_info": load_info, + "missing_adapter_keys": missing_adapter_keys, + "unexpected_adapter_keys": unexpected_adapter_keys, + "missing_mutable_buffer_keys": missing_buffer_keys, + "unexpected_mutable_buffer_keys": unexpected_buffer_keys, + "loaded_state_key_count": len(loaded), + "output_tensor_shapes": output_shapes, + } + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("release_dir", type=Path) + parser.add_argument( + "--base-checkpoint", + type=Path, + help="Optional local CellViT-SAM-H-x40 checkpoint; enables model loading and forward smoke test", + ) + parser.add_argument( + "--skip-forward", + action="store_true", + help="With --base-checkpoint, verify model loading but skip the 256x256 CPU forward pass", + ) + return parser.parse_args() + + +def main() -> None: + args = parse_args() + release_dir = args.release_dir.expanduser().resolve() + weights_path = release_dir / "adapter_model.safetensors" + config_path = release_dir / "adapter_config.json" + checksums_path = release_dir / "checksums.json" + for path in (weights_path, config_path, checksums_path): + if not path.is_file(): + raise FileNotFoundError(path) + config = json.loads(config_path.read_text()) + checksums = json.loads(checksums_path.read_text()) + tensors = load_file(str(weights_path), device="cpu") + reject_private_metadata(config) + + if config.get("base_model") != EXPECTED_BASE_MODEL: + raise ValueError(f"Unsupported base model: {config.get('base_model')!r}") + declared_checkpoint = Path(str(config.get("base_checkpoint", ""))).name + if declared_checkpoint != "CellViT-SAM-H-x40.pth": + raise ValueError(f"Unexpected declared base checkpoint: {declared_checkpoint!r}") + validate_mapping(config) + expected_shapes = config.get("expected_tensor_shapes") + if not isinstance(expected_shapes, dict) or set(expected_shapes) != set(tensors): + raise ValueError("Tensor keys do not exactly match expected_tensor_shapes") + for key, tensor in tensors.items(): + if list(tensor.shape) != expected_shapes[key]: + raise ValueError( + f"Shape mismatch for {key}: {list(tensor.shape)} != {expected_shapes[key]}" + ) + expected_components = config.get("expected_components", []) + if set(expected_components) != REQUIRED_COMPONENTS: + raise ValueError( + f"Expected exactly the selected-method components: {sorted(REQUIRED_COMPONENTS)}" + ) + for component in expected_components: + patterns = COMPONENT_PATTERNS[component] + if not any(any(pattern in key for pattern in patterns) for key in tensors): + raise ValueError(f"Missing component: {component}") + + adapter_numel = sum( + tensor.numel() + for key, tensor in tensors.items() + if key.startswith("adapter_state_dict.") + ) + declared_numel = int(config.get("trainable_parameter_count", config.get("trainable_params", -1))) + if adapter_numel != declared_numel: + raise ValueError(f"Trainable parameter count mismatch: {adapter_numel} != {declared_numel}") + expected_sha = checksums["exported"]["adapter_model.safetensors"] + if sha256(weights_path) != expected_sha: + raise ValueError("Safetensors SHA256 mismatch") + expected_config_sha = checksums["exported"]["adapter_config.json"] + if sha256(config_path) != expected_config_sha: + raise ValueError("adapter_config.json SHA256 mismatch") + model_verification = { + "missing_adapter_keys": None, + "unexpected_adapter_keys": None, + "missing_mutable_buffer_keys": None, + "unexpected_mutable_buffer_keys": None, + "output_tensor_shapes": {}, + } + if args.base_checkpoint is not None: + expected_base_sha = config.get("base_checkpoint_sha256") + if expected_base_sha and sha256(args.base_checkpoint.expanduser().resolve()) != expected_base_sha: + raise ValueError("Base checkpoint SHA256 mismatch") + model_verification = load_into_model( + config, tensors, args.base_checkpoint.expanduser().resolve(), not args.skip_forward + ) + print( + json.dumps( + { + "status": "ok", + "tensor_count": len(tensors), + "trainable_parameter_count": adapter_numel, + "base_model": config["base_model"], + "model_load_tested": args.base_checkpoint is not None, + "forward_tested": args.base_checkpoint is not None and not args.skip_forward, + **model_verification, + }, + indent=2, + sort_keys=True, + ) + ) + + +if __name__ == "__main__": + main() diff --git a/verification_summary.json b/verification_summary.json new file mode 100644 index 0000000000000000000000000000000000000000..2268152bc9aeefd66284bd1da86b3aa9bfbfa784 --- /dev/null +++ b/verification_summary.json @@ -0,0 +1,1286 @@ +{ + "adapter_count": 12, + "adapters": [ + { + "adapter_config_sha256": "85d5a9fa38b7b94e390c88ffcdfda7786b27f51bbcaca92e8c8a779c266a8b4b", + "adapter_id": "klt/seed42", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/klt/seed42", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "46ebbc6c07303feaf33dd58af7a8eebb0f50aed335078ddf84f6bcfa79231d7d", + "safetensors_size_bytes": 31812100, + "safetensors_tensor_count": 401, + "seed": "42", + "source_config_path": "configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "8f4c6ccb9d0ab636c7571a5d77e156160ca5201d09ae0dc45cd2b4cef21198d9", + "source_path": "adapters/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "source_sha256": "7b5410fdceb94d541862bb2ebf000a5629c1f5b1efd2f90c953dfb59be39f237", + "source_size_bytes": "31956368", + "state_dict_loading": "pass", + "tissue": "KidneyLiverTonsil", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "bc77a0d0aa8354b3b8f971d965fbe291ae5b4ab0a09886d6c622c8bfbe645443", + "adapter_id": "klt/seed43", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/klt/seed43", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "91ae522ab092dd303919db6ddc43a3f3f4e54a73a94e1a40335af5a715215690", + "safetensors_size_bytes": 31812156, + "safetensors_tensor_count": 401, + "seed": "43", + "source_config_path": "configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "source_config_sha256": "101953aa54b543759a056ed0517a8aaa0a61f1d23d79c8b6e53be88be68e2715", + "source_path": "adapters/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "source_sha256": "123ad536ac9bab1a655bad4de91d044965c3cd9c0d399c1972b246179485fd3f", + "source_size_bytes": "31956368", + "state_dict_loading": "pass", + "tissue": "KidneyLiverTonsil", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "41872431b328a1f203ff6bc3044870eaa45f4cf21f171f64540e43165361806d", + "adapter_id": "tissue_specific/breast/seed42", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/breast/seed42", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "df2da19b6e32b15641fde119b3115bd1b31b40009ed958b690833eb9d051f3f5", + "safetensors_size_bytes": 31812100, + "safetensors_tensor_count": 401, + "seed": "42", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "a0626700023d9148ab5cf5eb4407aec8abec9ee135d3eba7b202ad5a2942f811", + "source_path": "adapters/sthelar40x_breast_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "source_sha256": "5c23266a36dfbeb920d817164f3814f3fe08ea9ebebd2673d651d4ec9ed02b31", + "source_size_bytes": "31933820", + "state_dict_loading": "pass", + "tissue": "Breast", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "27d22f473eb52c27aeab9301308b44203ed59a36df443e3388d5e09b700e6879", + "adapter_id": "tissue_specific/colon/seed42", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/colon/seed42", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "57f5c1f483af257421ff17988705b47ae4d7e193ba78721c3545de9091b21c01", + "safetensors_size_bytes": 31812028, + "safetensors_tensor_count": 401, + "seed": "42", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "dc89c8bd6cc4b446287cd9ffae356b4d04103d9c7cb75b88901b56d6345e4909", + "source_path": "adapters/sthelar40x_colon_5class_spatial_margin128_lora_adaptformer_heads_only_seed42/sthelar40x_colon_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "source_sha256": "929b20ba7edef3faea19594a184b96238dda0c67e8e00bbe3fe00c682de8624c", + "source_size_bytes": "31932839", + "state_dict_loading": "pass", + "tissue": "Colon", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "f7139f247b4c8d5bb7ec4b02f8229dd5830a96ac39ff713e1377944aaad33db8", + "adapter_id": "tissue_specific/kidney/seed42", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/kidney/seed42", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "07b90305180138e35916cd5f0046028a3452a48fe07483f19e7f35180580fd48", + "safetensors_size_bytes": 31812004, + "safetensors_tensor_count": 401, + "seed": "42", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "7e36c95954e74129c06c660f00e05a1169d705d1f3c047ec5608ce39daa959fc", + "source_path": "adapters/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "source_sha256": "c1a6d7745382eb82d7f0c827940fd127f6aa1c11efe44f6ef9eebe5024901e9b", + "source_size_bytes": "31925695", + "state_dict_loading": "pass", + "tissue": "Kidney", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "a21c18e9e60209454580aac33d8c173c624cee934539a5a0177008c403a0f1a9", + "adapter_id": "tissue_specific/kidney/seed43", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/kidney/seed43", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "0af3083727fa184a52db8b9383c072a9eed33129f85976afa15018a04a3e3fd5", + "safetensors_size_bytes": 31812060, + "safetensors_tensor_count": 401, + "seed": "43", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "source_config_sha256": "a03148518b312ac0f554bfcde6d7fc7e40d80ca3257617237084f5925e9c969f", + "source_path": "adapters/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_heads_only_seed43/sthelar40x_kidney_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "source_sha256": "acf9e40f6b133e2073ef8dd219240a24028117aea04e110f66b9db19c327d36f", + "source_size_bytes": "31925695", + "state_dict_loading": "pass", + "tissue": "Kidney", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "892b058d292e097aea11a815e082d3a2cf82059d61b53a13355cc02a10b1a42d", + "adapter_id": "tissue_specific/liver/seed42", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/liver/seed42", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "86c3a97052847fa1d1b991a3c915a89654d94a7acda1ed9fa3c00de4110c3cff", + "safetensors_size_bytes": 31811988, + "safetensors_tensor_count": 401, + "seed": "42", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "dbf520027118e50391dda70c9b41ed95b057890f8311c47224229ff5a2a049e0", + "source_path": "adapters/sthelar40x_liver_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "source_sha256": "2ef8ee2925dc14969ace204897acaeafeffef0608f24fbb6cc4ca335b32dd3a9", + "source_size_bytes": "31925226", + "state_dict_loading": "pass", + "tissue": "Liver", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "75b486fb0e8e7166cb535f30d39f9bfc69c176d44e43b17cdfda68e8983410ea", + "adapter_id": "tissue_specific/lung/seed42", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/lung/seed42", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "77cda0133fa06351da106a728237d4dc79e9eed246975d617cf692b583f417e2", + "safetensors_size_bytes": 31812068, + "safetensors_tensor_count": 401, + "seed": "42", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "927f91669490dbfd2bc9675480b5dfcd760e0b6c9b3f6dcf740d33adeed76c57", + "source_path": "adapters/sthelar40x_lung_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "source_sha256": "2281149c47ac023d17ad2b8a2910a7c25a609b31326c05c0497d8657aa2dab7a", + "source_size_bytes": "31930898", + "state_dict_loading": "pass", + "tissue": "Lung", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "d69daa9d104da1fca2f779f5b4c633d7dcae14e3734acec172e0aea70d61bbf0", + "adapter_id": "tissue_specific/ovary/seed42", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/ovary/seed42", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "11133a3be26357e6387cfe714164ded302a486c3afbd8a688cda8ac0c93a474f", + "safetensors_size_bytes": 31812052, + "safetensors_tensor_count": 401, + "seed": "42", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "adc6f055eb1938d8797234c388bd7e22f7cf179b1c984843323b1e8f65fbf551", + "source_path": "adapters/sthelar40x_ovary_5class_spatial_margin128_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "source_sha256": "a00cb91646af00f9259a5a632793a0fe505c6a2c8532d082137cfac767629a66", + "source_size_bytes": "31925226", + "state_dict_loading": "pass", + "tissue": "Ovary", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "10101cf61c113e3ccdf649495758fa0119f5b17e5683139684da2f50a0c75c17", + "adapter_id": "tissue_specific/pancreatic/seed43", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/pancreatic/seed43", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "cfa072affb2108b0a5f7cfe54a0f535f6849e2ee72773fdaef13bb3119dc3b59", + "safetensors_size_bytes": 31812148, + "safetensors_tensor_count": 401, + "seed": "43", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "source_config_sha256": "ea13c37fd01e814c792a973a1a70bb18db5b4f8af32e389c07b9c6e431953efa", + "source_path": "adapters/sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_heads_only_seed43/sthelar40x_pancreatic_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "source_sha256": "e3b2886f1c58e389cebff0c406bac22a373fddaef170922f6f0011bb9002f056", + "source_size_bytes": "31956368", + "state_dict_loading": "pass", + "tissue": "Pancreatic", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "233918730801dbf825139df63e1ed037349d980ee1579ee9be87df9c8b9d2718", + "adapter_id": "tissue_specific/skin/seed42", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/skin/seed42", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "8de0d4d635d315af1cf954143808ff6652a2f8b161aabd5e21196ee3e2125f78", + "safetensors_size_bytes": 31812140, + "safetensors_tensor_count": 401, + "seed": "42", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN.yaml", + "source_config_sha256": "79f821c83ca153a91f226081ab7d83fb14fc03b0661273ed47477dbe8e5e9195", + "source_path": "adapters/sthelar40x_skin_5class_spatial_margin128_lora_adaptformer_heads_only_seed42/sthelar40x_skin_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed42_CLEAN_adapter.pth", + "source_sha256": "48b0f204b036ed236f7189ff30b81f3a466ab909a2edf7cdd5adac43491c263e", + "source_size_bytes": "31930962", + "state_dict_loading": "pass", + "tissue": "Skin", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + }, + { + "adapter_config_sha256": "055f28b48de5e8f56f7a99966a6cd7141acacec3b1481b80d9782fab139ec3c0", + "adapter_id": "tissue_specific/tonsil/seed43", + "adapter_state_key_count": 296, + "base_checkpoint": "CellViT-SAM-H-x40.pth", + "base_checkpoint_sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "components": "LoRA;AdaptFormer;NP head;HV head;NT head", + "dtype_distribution": "{\"float32\":366,\"int64\":35}", + "forward_smoke_256x256": "pass", + "label_mapping": "0:Background;1:Immune;2:Stromal;3:Epithelial;4:Melanocyte;5:Other", + "metadata_sanitization": "pass", + "method": "lora_adaptformer_r8_a8_red16_heads_only", + "missing_adapter_keys": 0, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": "tissue_types=[1,1];nuclei_binary_map=[1,2,256,256];hv_map=[1,2,256,256];nuclei_type_map=[1,6,256,256]", + "release_path": "release/huggingface/adapters/tissue_specific/tonsil/seed43", + "round_trip_tensor_equality": "pass", + "safetensors_sha256": "6ffecf88503c77444a420fac60be91c9ecfd30c87142df6c59a8d6cf8b06103d", + "safetensors_size_bytes": 31812092, + "safetensors_tensor_count": 401, + "seed": "43", + "source_config_path": "configs/release/compayl2026/tissue_specific/training_sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN.yaml", + "source_config_sha256": "e8817fa5a380226f2e1231e3eb58a4cc1c31e02aa6adf4ee486a4ca042b07369", + "source_path": "adapters/sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_heads_only_seed43/sthelar40x_tonsil_5class_spatial_margin128_cap50000_lora_adaptformer_r8_a8_red16_decoder_heads_only_lr5e-5_e10_seed43_CLEAN_adapter.pth", + "source_sha256": "a8d8918adebd3fe0f67a3c58c8f0687947dfcba17dc2c155779d129ffdfd29bf", + "source_size_bytes": "31933820", + "state_dict_loading": "pass", + "tissue": "Tonsil", + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": 0, + "verification_date": "2026-07-20", + "verification_details": { + "base_load_info": { + "loaded_tensors": 744, + "missing_target_keys": [ + "classifier_head.weight", + "classifier_head.bias" + ], + "skipped_shape": { + "classifier_head.bias": { + "checkpoint": [ + 19 + ], + "model": [ + 1 + ] + }, + "classifier_head.weight": { + "checkpoint": [ + 19, + 256 + ], + "model": [ + 1, + 256 + ] + } + } + }, + "base_model": "CellViT-SAM-H-x40", + "forward_tested": true, + "loaded_state_key_count": 401, + "missing_adapter_keys": [], + "missing_mutable_buffer_keys": [], + "model_load_tested": true, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "status": "ok", + "tensor_count": 401, + "trainable_parameter_count": 7908779, + "unexpected_adapter_keys": [], + "unexpected_mutable_buffer_keys": [] + }, + "verification_status": "pass" + } + ], + "base_checkpoint": { + "filename": "CellViT-SAM-H-x40.pth", + "redistributed": false, + "sha256": "b324c10fddb0f80f5ab03a0459453a4c4848866934daf63435b46749a6b278cf", + "size_bytes": 2799315941, + "transfer_load_note": "The upstream 19-class tissue classifier is intentionally reinitialized to one output; 744 compatible base tensors load, with classifier_head.weight/bias skipped only for this declared shape mismatch." + }, + "common_expectations": { + "adapter_state_key_count": 296, + "components": [ + "LoRA", + "AdaptFormer", + "NP head", + "HV head", + "NT head" + ], + "label_mapping": { + "Background": 0, + "Epithelial": 3, + "Immune": 1, + "Melanocyte": 4, + "Other": 5, + "Stromal": 2 + }, + "mutable_buffer_key_count": 105, + "output_tensor_shapes": { + "hv_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_binary_map": [ + 1, + 2, + 256, + 256 + ], + "nuclei_type_map": [ + 1, + 6, + 256, + 256 + ], + "tissue_types": [ + 1, + 1 + ] + }, + "tensor_count": 401, + "trainable_parameter_count": 7908779 + }, + "environment": { + "cuda_available": false, + "environment_yml_name": "cellvit", + "python": "3.9.25", + "local_environment_name": "cellvit39", + "python_executable": "python3.9", + "pytorch": "2.5.1+cu121", + "pyyaml": "6.0", + "safetensors": "0.7.0" + }, + "linear_probe_config_comparison": { + "inferred_fields": [], + "intentional_changes": [ + "data.dataset_path parameterized", + "logging.log_dir sanitized", + "logging.wandb_dir sanitized" + ], + "missing_scientific_fields": [], + "original": "run/sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_klt_final_heads_only_frozen_encoder_decoder_e10_seed42/log/2026-07-02T153245_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_klt_final_heads_only_frozen_encoder_decoder_e10_seed42/config.yaml", + "original_sha256": "4831771b975aadbcc8be0a4ed89d52c21e7c41c78633da6316ad8f2c3b6ce58c", + "release": "configs/release/compayl2026/klt/training_sthelar40x_kidney_liver_tonsil_5class_spatial_margin128_klt_final_heads_only_frozen_encoder_decoder_e10_seed42.yaml", + "release_sha256": "7c9cdb184bc3a3e13735b507777ec568d70a761fcbe9c8cbb06c12f6b30191ff", + "removed_runtime_fields": [ + "agent", + "dataset_config", + "logging.run_id", + "logging.wandb_file", + "run_sweep" + ], + "scientific_training_fields_equal": true + }, + "release_candidate_status": "verified_technical_checks_passed_license_review_pending", + "verified_manifest_sha256": "3dff12b9d7c6f79ed99603b529b13d1cbb0e0172fc8b7b54bc61a56cf5b7ef2f", + "tests": { + "failed": [], + "passed": [ + "12/12 source PTH schema and weights-only CPU loads", + "12/12 PTH-to-safetensors exports", + "12/12 exact tensor round trips", + "12/12 source/config/adapter-config/safetensors hashes", + "12/12 required component checks", + "12/12 tensor-key and tensor-shape checks", + "12/12 trainable parameter count checks", + "12/12 label mapping/order checks", + "12/12 sanitized metadata checks", + "12/12 safetensors header scans with zero private-path marker matches", + "12/12 base reconstruction and exact adapter-state loading", + "12/12 256x256 CPU forward smoke tests", + "public adapter-hub package resolution and metadata loading", + "root and Hugging Face README local-link resolution", + "root and Hugging Face release-config tree equality" + ], + "skipped": [ + "training", + "dataset-scale inference", + "dataset-dependent evaluation", + "GPU smoke tests", + "GitHub upload", + "Hugging Face upload" + ], + "transient_failures_resolved": [ + "Initial environment probe found safetensors missing; installed declared dependency 0.7.0 and reran successfully.", + "Initial KLT seed42 full verifier run reached the forward pass but failed during JSON reporting because load_info had been discarded; fixed the verifier and reran successfully." + ] + }, + "verification_date": "2026-07-20" +}