├── data_backup ├── result_sample.zip └── MedFMC │ ├── endo │ ├── endo_1-shot_train_exp5.txt │ ├── endo_1-shot_train_exp4.txt │ ├── endo_1-shot_train_exp2.txt │ ├── endo_1-shot_train_exp1.txt │ ├── endo_1-shot_train_exp3.txt │ ├── endo_5-shot_train_exp5.txt │ ├── endo_5-shot_train_exp2.txt │ └── endo_5-shot_train_exp3.txt │ ├── colon │ ├── colon_1-shot_train_exp4.txt │ ├── colon_1-shot_train_exp1.txt │ ├── colon_1-shot_train_exp5.txt │ ├── colon_1-shot_train_exp3.txt │ └── colon_1-shot_train_exp2.txt │ └── chest │ ├── chest_1-shot_train_exp4.txt │ ├── chest_1-shot_train_exp1.txt │ ├── chest_1-shot_train_exp2.txt │ ├── chest_1-shot_train_exp3.txt │ ├── chest_1-shot_train_exp5.txt │ ├── chest_5-shot_train_exp1.txt │ ├── chest_5-shot_train_exp3.txt │ ├── chest_5-shot_train_exp5.txt │ ├── chest_5-shot_train_exp4.txt │ └── chest_5-shot_train_exp2.txt ├── medfmc ├── datasets │ └── __init__.py ├── core │ └── evaluation │ │ ├── __init__.py │ │ └── eval_metrics.py └── models │ ├── __init__.py │ └── prompt_vit.py ├── run.sh ├── .flake8 ├── configs ├── _base_ │ ├── custom_imports.py │ ├── schedules │ │ ├── imagenet_bs256.py │ │ ├── imagenet_dense.py │ │ ├── imagenet_bs256_coslr.py │ │ ├── imagenet_bs4096_AdamW.py │ │ └── imagenet_bs1024_adamw_swin.py │ ├── sgd_i1000_lr0.001-cos.py │ ├── default_runtime.py │ ├── models │ │ ├── efficientnet_b4_multilabel.py │ │ ├── densenet │ │ │ ├── densenet121_multilabel.py │ │ │ └── densenet121.py │ │ ├── efficientnet_b4.py │ │ ├── swin_transformer │ │ │ ├── base_384_multilabel.py │ │ │ └── base_384.py │ │ └── vit-base-p16.py │ ├── iter_based_runtime.py │ └── datasets │ │ ├── imagenet_bs32.py │ │ ├── imagenet_bs64.py │ │ ├── imagenet_bs64_swin_384.py │ │ ├── chest.py │ │ ├── colon.py │ │ └── endoscopy.py ├── swin_transformer │ ├── swin-base_16xb64_in1k-384px.py │ ├── swin-base_colon.py │ ├── swin-base_chest.py │ └── swin-base_endoscopy.py ├── densenet │ ├── densenet121_4xb256_in1k.py │ ├── dense121_colon.py │ ├── dense121_chest.py │ └── dense121_endo.py ├── efficientnet │ ├── eff-b5_colon.py │ ├── eff-b5_chest.py │ ├── eff-b5_endo.py │ └── efficientnet-b4_8xb32_in1k.py ├── ablation_exp │ ├── dense121_colon_1-shot.py │ ├── dense121_colon_10-shot.py │ ├── dense121_colon_5-shot.py │ ├── dense121_chest_1-shot.py │ ├── dense121_chest_10-shot.py │ ├── dense121_chest_5-shot.py │ ├── dense121_endo_1-shot.py │ ├── dense121_endo_5-shot.py │ ├── dense121_endo_10-shot.py │ ├── eff-b5_colon_1-shot.py │ ├── eff-b5_colon_10-shot.py │ ├── eff-b5_colon_5-shot.py │ ├── eff-b5_endo_1-shot.py │ ├── eff-b5_endo_5-shot.py │ ├── eff-b5_chest_1-shot.py │ ├── eff-b5_chest_5-shot.py │ ├── eff-b5_endo_10-shot.py │ ├── eff-b5_chest_10-shot.py │ ├── swin-base_colon_1-shot.py │ ├── swin-base_colon_10-shot.py │ ├── swin-base_colon_5-shot.py │ ├── swin-base_chest_1-shot.py │ ├── swin-base_chest_5-shot.py │ ├── swin-base_chest_10-shot.py │ ├── swin-base_endo_1-shot.py │ ├── swin-base_endo_10-shot.py │ ├── swin-base_endo_5-shot.py │ ├── vitb16_1-shot_colon.py │ ├── vitb16_10-shot_colon.py │ ├── vitb16_5-shot_colon.py │ ├── vitb16_1-shot_chest.py │ ├── vitb16_1-shot_endo.py │ ├── vitb16_5-shot_chest.py │ ├── vitb16_5-shot_endo.py │ ├── vitb16_10-shot_chest.py │ └── vitb16_10-shot_endo.py ├── baseline_multiclass.yaml ├── vit-base │ ├── in21k-vitb16_bs4_lr6e-4_colon.py │ ├── in21k-vitb16_bs4_lr6e-4_chest.py │ └── in21k-vitb16_bs4_lr6e-4_endo.py ├── baseline_multilabel.yaml ├── vit-b16_vpt │ ├── in21k-vitb16_vpt1_bs4_lr6e-4_1-shot_chest.py │ ├── in21k-vitb16_vpt1_bs4_lr6e-4_1-shot_endo.py │ ├── in21k-vitb16_vpt1_bs4_lr6e-4_10-shot_chest.py │ ├── in21k-vitb16_vpt1_bs4_lr6e-4_10-shot_endo.py │ ├── in21k-vitb16_vpt1_bs4_lr6e-4_5-shot_chest.py │ ├── in21k-vitb16_vpt1_bs4_lr6e-4_5-shot_endo.py │ ├── in21k-vitb16_vpt1_bs4_lr6e-4_1-shot_colon.py │ ├── in21k-vitb16_vpt1_bs4_lr6e-4_10-shot_colon.py │ └── in21k-vitb16_vpt1_bs4_lr6e-4_5-shot_colon.py └── swin-b_vpt │ ├── in21k-swin-b_vpt5_bs4_lr5e-2_1-shot_chest_adamw.py │ ├── in21k-swin-b_vpt5_bs4_lr5e-2_1-shot_endo_adamw.py │ ├── in21k-swin-b_vpt5_bs4_lr5e-2_5-shot_chest_adamw.py │ ├── in21k-swin-b_vpt5_bs4_lr5e-2_5-shot_endo_adamw.py │ ├── in21k-swin-b_vpt5_bs4_lr5e-2_10-shot_chest_adamw.py │ ├── in21k-swin-b_vpt5_bs4_lr5e-2_10-shot_endo_adamw.py │ ├── in21k-swin-b_vpt5_bs4_lr5e-2_1-shot_colon_adamw.py │ ├── in21k-swin-b_vpt5_bs4_lr5e-2_5-shot_colon_adamw.py │ └── in21k-swin-b_vpt5_bs4_lr5e-2_10-shot_colon_adamw.py ├── setup.cfg ├── .isort.cfg ├── docker └── Dockerfile ├── .pre-commit-config.yaml ├── .gitignore └── tools ├── test_prediction.py └── generate_few-shot_file.py /data_backup/result_sample.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openmedlab/MedFM/HEAD/data_backup/result_sample.zip -------------------------------------------------------------------------------- /medfmc/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | from .medical_datasets import Chest19, Colon, Endoscopy 2 | 3 | __all__ = ['Chest19', 'Endoscopy', 'Colon'] 4 | -------------------------------------------------------------------------------- /medfmc/core/evaluation/__init__.py: -------------------------------------------------------------------------------- 1 | from .eval_metrics import AUC_multiclass, AUC_multilabel 2 | 3 | __all__ = ['AUC_multiclass', 'AUC_multilabel'] 4 | -------------------------------------------------------------------------------- /run.sh: -------------------------------------------------------------------------------- 1 | export WORKDIR=/medfmc_exp 2 | cd $WORKDIR 3 | export PYTHONPATH=$PWD:$PYTHONPATH 4 | python tools/train.py configs/densenet/dense121_chest.py --work-dir work_dirs/temp/ 5 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | ignore = E501, F403, C901, W504, W605, E251, E122, E126, E127 3 | select = E1, E3, E502, E7, E9, W1, W5, W6 4 | max-line-length = 180 5 | exclude=*.egg/*,build,dist,detection/configs/* 6 | -------------------------------------------------------------------------------- /configs/_base_/custom_imports.py: -------------------------------------------------------------------------------- 1 | custom_imports = dict( 2 | imports=[ 3 | 'medfmc.models', 'medfmc.datasets.medical_datasets', 4 | 'medfmc.core.evaluation' 5 | ], 6 | allow_failed_imports=False) 7 | -------------------------------------------------------------------------------- /configs/_base_/schedules/imagenet_bs256.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | optimizer = dict(type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001) 3 | optimizer_config = dict(grad_clip=None) 4 | # learning policy 5 | lr_config = dict(policy='step', step=[30, 60, 90]) 6 | runner = dict(type='EpochBasedRunner', max_epochs=100) 7 | -------------------------------------------------------------------------------- /configs/_base_/schedules/imagenet_dense.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | optimizer = dict(type='SGD', lr=0.001, momentum=0.9, weight_decay=0.0001) 3 | optimizer_config = dict(grad_clip=None) 4 | # learning policy 5 | lr_config = dict(policy='CosineAnnealing', min_lr=0) 6 | runner = dict(type='EpochBasedRunner', max_epochs=20) 7 | -------------------------------------------------------------------------------- /configs/swin_transformer/swin-base_16xb64_in1k-384px.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384.py', 4 | '../_base_/datasets/imagenet_bs64_swin_384.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py' 7 | ] 8 | -------------------------------------------------------------------------------- /configs/_base_/schedules/imagenet_bs256_coslr.py: -------------------------------------------------------------------------------- 1 | # optimizer 2 | optimizer = dict(type='SGD', lr=0.005, momentum=0.9, weight_decay=0.0001) 3 | optimizer_config = dict(grad_clip=None) 4 | # learning policy 5 | lr_config = dict(policy='CosineAnnealing', min_lr=0) 6 | runner = dict(type='EpochBasedRunner', max_epochs=20) 7 | -------------------------------------------------------------------------------- /medfmc/models/__init__.py: -------------------------------------------------------------------------------- 1 | from .prompt_swin import PromptedSwinTransformer 2 | from .prompt_vit import PromptedVisionTransformer 3 | from .vision_transformer import MedFMC_VisionTransformer 4 | 5 | __all__ = [ 6 | 'PromptedVisionTransformer', 'MedFMC_VisionTransformer', 7 | 'PromptedSwinTransformer' 8 | ] 9 | -------------------------------------------------------------------------------- /configs/densenet/densenet121_4xb256_in1k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121.py', 3 | '../_base_/datasets/imagenet_bs64.py', 4 | '../_base_/schedules/imagenet_bs256.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | data = dict(samples_per_gpu=256) 9 | 10 | runner = dict(type='EpochBasedRunner', max_epochs=90) 11 | -------------------------------------------------------------------------------- /configs/_base_/sgd_i1000_lr0.001-cos.py: -------------------------------------------------------------------------------- 1 | # runner = dict(type='IterBasedRunner', max_iters=1000) 2 | optimizer = dict(type='SGD', lr=0.001) 3 | optimizer_config = dict(grad_clip=None) 4 | lr_config = dict( 5 | policy='CosineAnnealing', 6 | min_lr=0., 7 | by_epoch=False, 8 | warmup='constant', 9 | warmup_by_epoch=False, 10 | warmup_iters=20, 11 | warmup_ratio=0.005) 12 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [isort] 2 | line_length = 79 3 | multi_line_output = 0 4 | known_standard_library = setuptools 5 | known_first_party = mmdet 6 | known_third_party = mmcv,mmseg,numpy,torch 7 | no_lines_before = STDLIB,LOCALFOLDER 8 | default_section = THIRDPARTY 9 | 10 | [yapf] 11 | BASED_ON_STYLE = pep8 12 | BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF = true 13 | SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PAREN = true 14 | -------------------------------------------------------------------------------- /configs/_base_/default_runtime.py: -------------------------------------------------------------------------------- 1 | # checkpoint saving 2 | checkpoint_config = dict(interval=1, max_keep_ckpts=1) 3 | # yapf:disable 4 | log_config = dict( 5 | interval=5, 6 | hooks=[ 7 | dict(type='TextLoggerHook'), 8 | # dict(type='TensorboardLoggerHook') 9 | ]) 10 | # yapf:enable 11 | 12 | dist_params = dict(backend='nccl') 13 | log_level = 'INFO' 14 | load_from = None 15 | resume_from = None 16 | workflow = [('train', 1)] 17 | -------------------------------------------------------------------------------- /configs/_base_/models/efficientnet_b4_multilabel.py: -------------------------------------------------------------------------------- 1 | # model settings 2 | model = dict( 3 | type='ImageClassifier', 4 | backbone=dict(type='EfficientNet', arch='b4'), 5 | neck=dict(type='GlobalAveragePooling'), 6 | head=dict( 7 | type='MultiLabelLinearClsHead', 8 | num_classes=1000, 9 | in_channels=1792, 10 | )) 11 | # custom_imports = dict( 12 | # imports=[ 13 | # 'medfmc.datasets.medical_datasets', 14 | # ], allow_failed_imports=False) 15 | -------------------------------------------------------------------------------- /configs/_base_/models/densenet/densenet121_multilabel.py: -------------------------------------------------------------------------------- 1 | # Model settings 2 | model = dict( 3 | type='ImageClassifier', 4 | backbone=dict(type='DenseNet', arch='121'), 5 | neck=dict(type='GlobalAveragePooling'), 6 | head=dict( 7 | type='MultiLabelLinearClsHead', 8 | num_classes=1000, 9 | in_channels=1024, 10 | )) 11 | 12 | # custom_imports = dict( 13 | # imports=[ 14 | # 'medfmc.datasets.medical_datasets', 15 | # ], allow_failed_imports=False) 16 | -------------------------------------------------------------------------------- /configs/_base_/iter_based_runtime.py: -------------------------------------------------------------------------------- 1 | # yapf:disable 2 | log_config = dict( 3 | interval=10, 4 | hooks=[ 5 | dict(type='TextLoggerHook'), 6 | ]) 7 | # yapf:enable 8 | checkpoint_config = dict(interval=100, max_keep_ckpts=1) 9 | # evaluation = dict(by_epoch=False, metric=['accuracy', 'class_accuracy', 'bag_accuracy', 'bag_class_accuracy'], interval=1000) 10 | dist_params = dict(backend='nccl') 11 | log_level = 'INFO' 12 | load_from = None 13 | resume_from = None 14 | workflow = [('train', 1)] 15 | -------------------------------------------------------------------------------- /configs/densenet/dense121_colon.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121.py', '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_dense.py', '../_base_/default_runtime.py', 4 | '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=2), 15 | ) 16 | -------------------------------------------------------------------------------- /configs/_base_/models/densenet/densenet121.py: -------------------------------------------------------------------------------- 1 | # Model settings 2 | model = dict( 3 | type='ImageClassifier', 4 | backbone=dict(type='DenseNet', arch='121'), 5 | neck=dict(type='GlobalAveragePooling'), 6 | head=dict( 7 | type='LinearClsHead', 8 | num_classes=1000, 9 | in_channels=1024, 10 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 11 | )) 12 | # custom_imports = dict( 13 | # imports=[ 14 | # 'medfmc.datasets.medical_datasets', 15 | # ], allow_failed_imports=False) 16 | -------------------------------------------------------------------------------- /configs/densenet/dense121_chest.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121_multilabel.py', 3 | '../_base_/datasets/chest.py', '../_base_/schedules/imagenet_dense.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=19)) 15 | -------------------------------------------------------------------------------- /configs/densenet/dense121_endo.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121_multilabel.py', 3 | '../_base_/datasets/endoscopy.py', '../_base_/schedules/imagenet_dense.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=4), 15 | ) 16 | -------------------------------------------------------------------------------- /configs/_base_/models/efficientnet_b4.py: -------------------------------------------------------------------------------- 1 | # model settings 2 | model = dict( 3 | type='ImageClassifier', 4 | backbone=dict(type='EfficientNet', arch='b4'), 5 | neck=dict(type='GlobalAveragePooling'), 6 | head=dict( 7 | type='LinearClsHead', 8 | num_classes=1000, 9 | in_channels=1792, 10 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 11 | topk=(1, 5), 12 | )) 13 | # custom_imports = dict( 14 | # imports=[ 15 | # 'medfmc.datasets.medical_datasets', 16 | # ], allow_failed_imports=False) 17 | -------------------------------------------------------------------------------- /configs/efficientnet/eff-b5_colon.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4.py', '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_bs256_coslr.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint= 12 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 13 | prefix='backbone', 14 | )), 15 | head=dict(num_classes=2), 16 | ) 17 | -------------------------------------------------------------------------------- /configs/efficientnet/eff-b5_chest.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4_multilabel.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_bs256_coslr.py', 5 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 6 | ] 7 | 8 | model = dict( 9 | backbone=dict( 10 | init_cfg=dict( 11 | type='Pretrained', 12 | checkpoint= 13 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 14 | prefix='backbone', 15 | )), 16 | head=dict(num_classes=19), 17 | ) 18 | -------------------------------------------------------------------------------- /configs/efficientnet/eff-b5_endo.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4_multilabel.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_bs256_coslr.py', 5 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 6 | ] 7 | 8 | model = dict( 9 | backbone=dict( 10 | init_cfg=dict( 11 | type='Pretrained', 12 | checkpoint= 13 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 14 | prefix='backbone', 15 | )), 16 | head=dict(num_classes=4), 17 | ) 18 | -------------------------------------------------------------------------------- /data_backup/MedFMC/endo/endo_1-shot_train_exp5.txt: -------------------------------------------------------------------------------- 1 | 13333_2021.12_0006_55977222.png 1 1 0 0 2 | 13333_2021.12_0006_55977215.png 1 0 0 0 3 | 13333_2021.12_0006_55977214.png 1 0 0 0 4 | 13333_2021.09_0003_51743350.png 0 1 0 0 5 | 13333_2021.09_0003_51743353.png 1 1 0 0 6 | 13333_2021.09_0003_51743343.png 0 1 0 0 7 | 13333_2021.09_0003_51743348.png 0 1 0 0 8 | 13333_2021.09_0003_51743331.png 0 1 1 0 9 | 13333_2021.09_0004_52719674.png 0 0 1 0 10 | 13333_2021.09_0004_52719508.png 0 0 1 0 11 | 13333_2021.09_0004_52719617.png 0 0 1 0 12 | 13333_2021.09_0004_52720500.png 0 0 1 0 13 | 13333_2021.12_0009_56515487.png 0 0 0 1 14 | -------------------------------------------------------------------------------- /configs/swin_transformer/swin-base_colon.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384.py', 4 | '../_base_/datasets/colon.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=2), 18 | ) 19 | -------------------------------------------------------------------------------- /configs/swin_transformer/swin-base_chest.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384_multilabel.py', 4 | '../_base_/datasets/chest.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=19), 18 | ) 19 | -------------------------------------------------------------------------------- /configs/swin_transformer/swin-base_endoscopy.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384_multilabel.py', 4 | '../_base_/datasets/endoscopy.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=4), 18 | ) 19 | -------------------------------------------------------------------------------- /configs/_base_/schedules/imagenet_bs4096_AdamW.py: -------------------------------------------------------------------------------- 1 | # specific to vit pretrain 2 | paramwise_cfg = dict(custom_keys={ 3 | '.cls_token': dict(decay_mult=0.0), 4 | '.pos_embed': dict(decay_mult=0.0) 5 | }) 6 | 7 | # optimizer 8 | optimizer = dict( 9 | type='AdamW', 10 | lr=0.003, 11 | weight_decay=0.3, 12 | paramwise_cfg=paramwise_cfg, 13 | ) 14 | optimizer_config = dict(grad_clip=dict(max_norm=1.0)) 15 | 16 | # learning policy 17 | lr_config = dict( 18 | policy='CosineAnnealing', 19 | min_lr=0, 20 | warmup='linear', 21 | warmup_iters=10000, 22 | warmup_ratio=1e-4, 23 | ) 24 | runner = dict(type='EpochBasedRunner', max_epochs=20) 25 | -------------------------------------------------------------------------------- /configs/_base_/models/swin_transformer/base_384_multilabel.py: -------------------------------------------------------------------------------- 1 | # model settings 2 | # Only for evaluation 3 | model = dict( 4 | type='ImageClassifier', 5 | backbone=dict( 6 | type='SwinTransformer', 7 | arch='base', 8 | img_size=384, 9 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 10 | neck=dict(type='GlobalAveragePooling'), 11 | head=dict( 12 | type='MultiLabelLinearClsHead', num_classes=1000, in_channels=1024)) 13 | # loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 14 | # topk=(1, 5))) 15 | # custom_imports = dict( 16 | # imports=[ 17 | # 'medfmc.datasets.medical_datasets', 18 | # ], allow_failed_imports=False) 19 | -------------------------------------------------------------------------------- /configs/_base_/models/swin_transformer/base_384.py: -------------------------------------------------------------------------------- 1 | # model settings 2 | # Only for evaluation 3 | model = dict( 4 | type='ImageClassifier', 5 | backbone=dict( 6 | type='SwinTransformer', 7 | arch='base', 8 | img_size=384, 9 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 10 | neck=dict(type='GlobalAveragePooling'), 11 | head=dict( 12 | type='LinearClsHead', 13 | num_classes=1000, 14 | in_channels=1024, 15 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 16 | topk=(1, 5))) 17 | # custom_imports = dict( 18 | # imports=[ 19 | # 'medfmc.datasets.medical_datasets', 20 | # ], allow_failed_imports=False) 21 | -------------------------------------------------------------------------------- /configs/_base_/models/vit-base-p16.py: -------------------------------------------------------------------------------- 1 | # model settings 2 | model = dict( 3 | type='ImageClassifier', 4 | backbone=dict( 5 | type='VisionTransformer', 6 | arch='b', 7 | img_size=224, 8 | patch_size=16, 9 | drop_rate=0.1, 10 | init_cfg=[ 11 | dict( 12 | type='Kaiming', 13 | layer='Conv2d', 14 | mode='fan_in', 15 | nonlinearity='linear') 16 | ]), 17 | neck=None, 18 | head=dict( 19 | type='VisionTransformerClsHead', 20 | num_classes=1000, 21 | in_channels=768, 22 | loss=dict( 23 | type='LabelSmoothLoss', label_smooth_val=0.1, 24 | mode='classy_vision'), 25 | )) 26 | -------------------------------------------------------------------------------- /.isort.cfg: -------------------------------------------------------------------------------- 1 | [isort] 2 | line_length = 180 3 | multi_line_output = 0 4 | extra_standard_library = setuptools 5 | known_third_party = PIL,asynctest,cityscapesscripts,cv2,gather_models,matplotlib,mmcv,numpy,onnx,onnxruntime,pycocotools,pytest,pytorch_sphinx_theme,requests,scipy,seaborn,six,terminaltables,torch,ts,yaml 6 | no_lines_before = STDLIB,LOCALFOLDER 7 | default_section = THIRDPARTY 8 | 9 | [yapf] 10 | BASED_ON_STYLE = pep8 11 | BLANK_LINE_BEFORE_NESTED_CLASS_OR_DEF = true 12 | SPLIT_BEFORE_EXPRESSION_AFTER_OPENING_PAREN = true 13 | 14 | [codespell] 15 | skip = *.ipynb 16 | quiet-level = 3 17 | ignore-words-list = patten,nd,ty,mot,hist,formating,winn,gool,datas,wan,confids,TOOD,tood 18 | © 2022 GitHub, Inc. 19 | Terms 20 | Privacy 21 | Security 22 | Status 23 | Docs 24 | Contact GitHub 25 | Pricing 26 | API 27 | -------------------------------------------------------------------------------- /data_backup/MedFMC/colon/colon_1-shot_train_exp4.txt: -------------------------------------------------------------------------------- 1 | 2019-05891-1-4-4_2019-05-29 03_22_47-lv1-36843-10055-2371-1792p0001.png 0 2 | 2019-05891-1-4-4_2019-05-29 03_22_47-lv1-36843-10055-2371-1792p0004.png 0 3 | 2019-05891-1-4-4_2019-05-29 03_22_47-lv1-36843-10055-2371-1792p0002.png 0 4 | 2019-05891-1-4-4_2019-05-29 03_22_47-lv1-36843-10055-2371-1792p0003.png 0 5 | D201707788_2019-05-14 14_05_34-lv1-989-2393-13582-13495p0006.png 1 6 | D201707788_2019-05-14 14_05_34-lv1-989-2393-13582-13495p0007.png 1 7 | D201707788_2019-05-14 14_05_34-lv1-989-2393-13582-13495p0005.png 1 8 | D201707788_2019-05-14 14_05_34-lv1-989-2393-13582-13495p0003.png 1 9 | D201707788_2019-05-14 14_05_34-lv1-989-2393-13582-13495p0001.png 1 10 | D201707788_2019-05-14 14_05_34-lv1-989-2393-13582-13495p0004.png 1 11 | D201707788_2019-05-14 14_05_34-lv1-989-2393-13582-13495p0002.png 1 12 | -------------------------------------------------------------------------------- /configs/ablation_exp/dense121_colon_1-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121.py', '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_dense.py', '../_base_/default_runtime.py', 4 | '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=2), 15 | ) 16 | dataset = 'colon' 17 | nshot = 1 18 | data = dict( 19 | samples_per_gpu=4, # use 2 gpus, total 128 20 | train=dict( 21 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 22 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 23 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 24 | -------------------------------------------------------------------------------- /configs/ablation_exp/dense121_colon_10-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121.py', '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_dense.py', '../_base_/default_runtime.py', 4 | '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=2), 15 | ) 16 | dataset = 'colon' 17 | nshot = 10 18 | data = dict( 19 | samples_per_gpu=4, # use 2 gpus, total 128 20 | train=dict( 21 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 22 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 23 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 24 | -------------------------------------------------------------------------------- /configs/ablation_exp/dense121_colon_5-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121.py', '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_dense.py', '../_base_/default_runtime.py', 4 | '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=2), 15 | ) 16 | dataset = 'colon' 17 | nshot = 5 18 | data = dict( 19 | samples_per_gpu=4, # use 2 gpus, total 128 20 | train=dict( 21 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 22 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 23 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 24 | -------------------------------------------------------------------------------- /configs/ablation_exp/dense121_chest_1-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121_multilabel.py', 3 | '../_base_/datasets/chest.py', '../_base_/schedules/imagenet_dense.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=19)) 15 | 16 | dataset = 'chest' 17 | nshot = 1 18 | data = dict( 19 | samples_per_gpu=4, # use 2 gpus, total 128 20 | train=dict( 21 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 22 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 23 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 24 | -------------------------------------------------------------------------------- /configs/ablation_exp/dense121_chest_10-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121_multilabel.py', 3 | '../_base_/datasets/chest.py', '../_base_/schedules/imagenet_dense.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=19)) 15 | 16 | dataset = 'chest' 17 | nshot = 10 18 | data = dict( 19 | samples_per_gpu=4, # use 2 gpus, total 128 20 | train=dict( 21 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 22 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 23 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 24 | -------------------------------------------------------------------------------- /configs/ablation_exp/dense121_chest_5-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121_multilabel.py', 3 | '../_base_/datasets/chest.py', '../_base_/schedules/imagenet_dense.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=19)) 15 | 16 | dataset = 'chest' 17 | nshot = 5 18 | data = dict( 19 | samples_per_gpu=4, # use 2 gpus, total 128 20 | train=dict( 21 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 22 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 23 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 24 | -------------------------------------------------------------------------------- /configs/ablation_exp/dense121_endo_1-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121_multilabel.py', 3 | '../_base_/datasets/endoscopy.py', '../_base_/schedules/imagenet_dense.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=4), 15 | ) 16 | dataset = 'endo' 17 | nshot = 1 18 | data = dict( 19 | samples_per_gpu=4, # use 2 gpus, total 128 20 | train=dict( 21 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 22 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 23 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 24 | -------------------------------------------------------------------------------- /configs/ablation_exp/dense121_endo_5-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121_multilabel.py', 3 | '../_base_/datasets/endoscopy.py', '../_base_/schedules/imagenet_dense.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=4), 15 | ) 16 | dataset = 'endo' 17 | nshot = 5 18 | data = dict( 19 | samples_per_gpu=4, # use 2 gpus, total 128 20 | train=dict( 21 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 22 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 23 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 24 | -------------------------------------------------------------------------------- /configs/ablation_exp/dense121_endo_10-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/densenet/densenet121_multilabel.py', 3 | '../_base_/datasets/endoscopy.py', '../_base_/schedules/imagenet_dense.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint='pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth', 12 | prefix='backbone', 13 | )), 14 | head=dict(num_classes=4), 15 | ) 16 | dataset = 'endo' 17 | nshot = 10 18 | data = dict( 19 | samples_per_gpu=4, # use 2 gpus, total 128 20 | train=dict( 21 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 22 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 23 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 24 | -------------------------------------------------------------------------------- /configs/_base_/schedules/imagenet_bs1024_adamw_swin.py: -------------------------------------------------------------------------------- 1 | paramwise_cfg = dict( 2 | norm_decay_mult=0.0, 3 | bias_decay_mult=0.0, 4 | custom_keys={ 5 | '.absolute_pos_embed': dict(decay_mult=0.0), 6 | '.relative_position_bias_table': dict(decay_mult=0.0) 7 | }) 8 | 9 | # for batch in each gpu is 128, 8 gpu 10 | # lr = 5e-4 * 128 * 8 / 512 = 0.001 11 | optimizer = dict( 12 | type='AdamW', 13 | lr=5e-4 * 1024 / 512 / 2, 14 | weight_decay=0.05, 15 | eps=1e-8, 16 | betas=(0.9, 0.999), 17 | paramwise_cfg=paramwise_cfg) 18 | optimizer_config = dict(grad_clip=dict(max_norm=5.0)) 19 | 20 | # learning policy 21 | lr_config = dict( 22 | policy='CosineAnnealing', 23 | by_epoch=False, 24 | min_lr_ratio=1e-2, 25 | warmup='linear', 26 | warmup_ratio=1e-3, 27 | warmup_iters=20, 28 | warmup_by_epoch=True) 29 | 30 | runner = dict(type='EpochBasedRunner', max_epochs=20) 31 | -------------------------------------------------------------------------------- /configs/ablation_exp/eff-b5_colon_1-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4.py', '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_bs256_coslr.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint= 12 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 13 | prefix='backbone', 14 | )), 15 | head=dict(num_classes=2), 16 | ) 17 | dataset = 'colon' 18 | nshot = 1 19 | data = dict( 20 | samples_per_gpu=4, # use 2 gpus, total 128 21 | train=dict( 22 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 23 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 24 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 25 | -------------------------------------------------------------------------------- /configs/ablation_exp/eff-b5_colon_10-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4.py', '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_bs256_coslr.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint= 12 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 13 | prefix='backbone', 14 | )), 15 | head=dict(num_classes=2), 16 | ) 17 | dataset = 'colon' 18 | nshot = 10 19 | data = dict( 20 | samples_per_gpu=4, # use 2 gpus, total 128 21 | train=dict( 22 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 23 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 24 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 25 | -------------------------------------------------------------------------------- /configs/ablation_exp/eff-b5_colon_5-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4.py', '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_bs256_coslr.py', 4 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 5 | ] 6 | 7 | model = dict( 8 | backbone=dict( 9 | init_cfg=dict( 10 | type='Pretrained', 11 | checkpoint= 12 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 13 | prefix='backbone', 14 | )), 15 | head=dict(num_classes=2), 16 | ) 17 | dataset = 'colon' 18 | nshot = 5 19 | data = dict( 20 | samples_per_gpu=4, # use 2 gpus, total 128 21 | train=dict( 22 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 23 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 24 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 25 | -------------------------------------------------------------------------------- /configs/ablation_exp/eff-b5_endo_1-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4_multilabel.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_bs256_coslr.py', 5 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 6 | ] 7 | 8 | model = dict( 9 | backbone=dict( 10 | init_cfg=dict( 11 | type='Pretrained', 12 | checkpoint= 13 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 14 | prefix='backbone', 15 | )), 16 | head=dict(num_classes=4), 17 | ) 18 | dataset = 'endo' 19 | nshot = 1 20 | data = dict( 21 | samples_per_gpu=4, # use 2 gpus, total 128 22 | train=dict( 23 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 24 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 25 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 26 | -------------------------------------------------------------------------------- /configs/ablation_exp/eff-b5_endo_5-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4_multilabel.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_bs256_coslr.py', 5 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 6 | ] 7 | 8 | model = dict( 9 | backbone=dict( 10 | init_cfg=dict( 11 | type='Pretrained', 12 | checkpoint= 13 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 14 | prefix='backbone', 15 | )), 16 | head=dict(num_classes=4), 17 | ) 18 | dataset = 'endo' 19 | nshot = 5 20 | data = dict( 21 | samples_per_gpu=4, # use 2 gpus, total 128 22 | train=dict( 23 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 24 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 25 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 26 | -------------------------------------------------------------------------------- /configs/ablation_exp/eff-b5_chest_1-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4_multilabel.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_bs256_coslr.py', 5 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 6 | ] 7 | 8 | model = dict( 9 | backbone=dict( 10 | init_cfg=dict( 11 | type='Pretrained', 12 | checkpoint= 13 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 14 | prefix='backbone', 15 | )), 16 | head=dict(num_classes=19), 17 | ) 18 | 19 | dataset = 'chest' 20 | nshot = 1 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/eff-b5_chest_5-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4_multilabel.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_bs256_coslr.py', 5 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 6 | ] 7 | 8 | model = dict( 9 | backbone=dict( 10 | init_cfg=dict( 11 | type='Pretrained', 12 | checkpoint= 13 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 14 | prefix='backbone', 15 | )), 16 | head=dict(num_classes=19), 17 | ) 18 | 19 | dataset = 'chest' 20 | nshot = 5 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/eff-b5_endo_10-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4_multilabel.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_bs256_coslr.py', 5 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 6 | ] 7 | 8 | model = dict( 9 | backbone=dict( 10 | init_cfg=dict( 11 | type='Pretrained', 12 | checkpoint= 13 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 14 | prefix='backbone', 15 | )), 16 | head=dict(num_classes=4), 17 | ) 18 | dataset = 'endo' 19 | nshot = 10 20 | data = dict( 21 | samples_per_gpu=4, # use 2 gpus, total 128 22 | train=dict( 23 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 24 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 25 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 26 | -------------------------------------------------------------------------------- /configs/ablation_exp/eff-b5_chest_10-shot.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4_multilabel.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_bs256_coslr.py', 5 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 6 | ] 7 | 8 | model = dict( 9 | backbone=dict( 10 | init_cfg=dict( 11 | type='Pretrained', 12 | checkpoint= 13 | 'pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth', 14 | prefix='backbone', 15 | )), 16 | head=dict(num_classes=19), 17 | ) 18 | 19 | dataset = 'chest' 20 | nshot = 10 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/swin-base_colon_1-shot.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384.py', 4 | '../_base_/datasets/colon.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=2), 18 | ) 19 | dataset = 'colon' 20 | nshot = 1 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/swin-base_colon_10-shot.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384.py', 4 | '../_base_/datasets/colon.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=2), 18 | ) 19 | dataset = 'colon' 20 | nshot = 10 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/swin-base_colon_5-shot.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384.py', 4 | '../_base_/datasets/colon.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=2), 18 | ) 19 | dataset = 'colon' 20 | nshot = 5 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/swin-base_chest_1-shot.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384_multilabel.py', 4 | '../_base_/datasets/chest.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=19), 18 | ) 19 | dataset = 'chest' 20 | nshot = 1 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/swin-base_chest_5-shot.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384_multilabel.py', 4 | '../_base_/datasets/chest.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=19), 18 | ) 19 | dataset = 'chest' 20 | nshot = 5 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/swin-base_chest_10-shot.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384_multilabel.py', 4 | '../_base_/datasets/chest.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=19), 18 | ) 19 | dataset = 'chest' 20 | nshot = 10 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/swin-base_endo_1-shot.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384_multilabel.py', 4 | '../_base_/datasets/endoscopy.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=4), 18 | ) 19 | dataset = 'endo' 20 | nshot = 1 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/swin-base_endo_10-shot.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384_multilabel.py', 4 | '../_base_/datasets/endoscopy.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=4), 18 | ) 19 | dataset = 'endo' 20 | nshot = 10 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/ablation_exp/swin-base_endo_5-shot.py: -------------------------------------------------------------------------------- 1 | # Only for evaluation 2 | _base_ = [ 3 | '../_base_/models/swin_transformer/base_384_multilabel.py', 4 | '../_base_/datasets/endoscopy.py', 5 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 6 | '../_base_/default_runtime.py', '../_base_/custom_imports.py' 7 | ] 8 | 9 | model = dict( 10 | backbone=dict( 11 | init_cfg=dict( 12 | type='Pretrained', 13 | checkpoint= 14 | 'pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth', 15 | prefix='backbone', 16 | )), 17 | head=dict(num_classes=4), 18 | ) 19 | dataset = 'endo' 20 | nshot = 5 21 | data = dict( 22 | samples_per_gpu=4, # use 2 gpus, total 128 23 | train=dict( 24 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 25 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 26 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 27 | -------------------------------------------------------------------------------- /configs/baseline_multiclass.yaml: -------------------------------------------------------------------------------- 1 | model_run: 2 | run_swin: True 3 | run_effi: True 4 | run_dens: True 5 | model_cfg: 6 | swin_model_name: 'swin-base' 7 | swin_model_config: './configs/swin_transformer/swin-base_16xb64_in1k-384px.py' 8 | swin_model_checkpoint: './pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 9 | effi_model_name: 'efficient-b4' 10 | effi_model_config: './configs/efficientnet/efficientnet-b4_8xb32_in1k.py' 11 | effi_model_checkpoint: './pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth' 12 | dens_model_name: 'dense121' 13 | dens_model_config: './configs/densenet/densenet121_4xb256_in1k.py' 14 | dens_model_checkpoint: './pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth' 15 | data_cfg: 16 | colon: 17 | N_way: 2 18 | images_dir: './data/MedFMC/colon/images' 19 | train_list_txt: './data/MedFMC/colon/trainval.txt' 20 | test_list_txt: './data/MedFMC/colon/test_WithLabel.txt' 21 | method_cfg: 22 | K_shot_set: [1, 5, 10] 23 | max_iters: 10 24 | -------------------------------------------------------------------------------- /configs/vit-base/in21k-vitb16_bs4_lr6e-4_colon.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/colon.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | model = dict( 10 | type='ImageClassifier', 11 | backbone=dict( 12 | type='MedFMC_VisionTransformer', 13 | arch='b', 14 | img_size=224, 15 | patch_size=16, 16 | drop_rate=0.1), 17 | head=dict( 18 | type='LinearClsHead', 19 | num_classes=2, 20 | in_channels=768, 21 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 22 | )) 23 | 24 | optimizer = dict(lr=lr) 25 | 26 | log_config = dict( 27 | interval=10, hooks=[ 28 | dict(type='TextLoggerHook'), 29 | ]) 30 | 31 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 32 | 33 | runner = dict(type='EpochBasedRunner', max_epochs=20) 34 | 35 | # yapf:disable 36 | log_config = dict( 37 | interval=10, 38 | hooks=[ 39 | dict(type='TextLoggerHook'), 40 | ]) 41 | -------------------------------------------------------------------------------- /configs/vit-base/in21k-vitb16_bs4_lr6e-4_chest.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | model = dict( 10 | type='ImageClassifier', 11 | backbone=dict( 12 | type='MedFMC_VisionTransformer', 13 | arch='b', 14 | img_size=224, 15 | patch_size=16, 16 | drop_rate=0.1), 17 | head=dict( 18 | type='MultiLabelLinearClsHead', 19 | num_classes=19, 20 | in_channels=768, 21 | loss=dict( 22 | type='CrossEntropyLoss', 23 | use_sigmoid=True, 24 | reduction='mean', 25 | loss_weight=1.0), 26 | )) 27 | 28 | optimizer = dict(lr=lr) 29 | 30 | log_config = dict( 31 | interval=10, hooks=[ 32 | dict(type='TextLoggerHook'), 33 | ]) 34 | 35 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 36 | 37 | runner = dict(type='EpochBasedRunner', max_epochs=20) 38 | 39 | # yapf:disable 40 | log_config = dict( 41 | interval=10, 42 | hooks=[ 43 | dict(type='TextLoggerHook'), 44 | ]) 45 | -------------------------------------------------------------------------------- /configs/vit-base/in21k-vitb16_bs4_lr6e-4_endo.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | model = dict( 10 | type='ImageClassifier', 11 | backbone=dict( 12 | type='MedFMC_VisionTransformer', 13 | arch='b', 14 | img_size=224, 15 | patch_size=16, 16 | drop_rate=0.1), 17 | head=dict( 18 | type='MultiLabelLinearClsHead', 19 | num_classes=4, 20 | in_channels=768, 21 | loss=dict( 22 | type='CrossEntropyLoss', 23 | use_sigmoid=True, 24 | reduction='mean', 25 | loss_weight=1.0), 26 | )) 27 | 28 | optimizer = dict(lr=lr) 29 | 30 | log_config = dict( 31 | interval=10, hooks=[ 32 | dict(type='TextLoggerHook'), 33 | ]) 34 | 35 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 36 | 37 | runner = dict(type='EpochBasedRunner', max_epochs=20) 38 | 39 | # yapf:disable 40 | log_config = dict( 41 | interval=10, 42 | hooks=[ 43 | dict(type='TextLoggerHook'), 44 | ]) 45 | -------------------------------------------------------------------------------- /data_backup/MedFMC/endo/endo_1-shot_train_exp4.txt: -------------------------------------------------------------------------------- 1 | 13333_2021.12_0006_55977222.png 1 1 0 0 2 | 13333_2021.12_0006_55977215.png 1 0 0 0 3 | 13333_2021.12_0006_55977214.png 1 0 0 0 4 | 13333_2021.01_0003_41583338.png 1 1 1 0 5 | 13333_2021.01_0003_41331736.png 1 1 1 0 6 | 13333_2021.01_0003_41332452.png 0 1 0 0 7 | 13333_2021.01_0003_41332454.png 0 1 0 0 8 | 13333_2021.01_0003_41583112.png 0 1 0 0 9 | 13333_2021.01_0003_41583339.png 0 1 1 0 10 | 13333_2021.01_0003_41583135.png 0 1 0 0 11 | 13333_2021.01_0003_41332459.png 0 1 0 0 12 | 13333_2021.01_0003_41332451.png 0 1 1 0 13 | 13333_2021.01_0003_41583318.png 0 0 1 0 14 | 13333_2021.01_0003_41583307.png 0 0 1 0 15 | 13333_2021.01_0003_41583338.png 1 1 1 0 16 | 13333_2021.01_0003_41332455.png 0 0 1 0 17 | 13333_2021.01_0003_41331736.png 1 1 1 0 18 | 13333_2021.01_0003_41332083.png 0 0 1 0 19 | 13333_2021.01_0003_41583237.png 0 0 1 0 20 | 13333_2021.01_0003_41332150.png 0 0 1 0 21 | 13333_2021.01_0003_41583369.png 1 0 1 0 22 | 13333_2021.01_0003_41332453.png 0 0 1 0 23 | 13333_2021.01_0003_41583339.png 0 1 1 0 24 | 13333_2021.01_0003_41332457.png 0 0 1 0 25 | 13333_2021.01_0003_41332458.png 0 0 1 0 26 | 13333_2021.01_0003_41332451.png 0 1 1 0 27 | 13333_2021.01_0003_41583134.png 1 0 1 0 28 | 13333_2021.12_0009_56515487.png 0 0 0 1 29 | -------------------------------------------------------------------------------- /configs/baseline_multilabel.yaml: -------------------------------------------------------------------------------- 1 | model_run: 2 | run_swin: True 3 | run_effi: True 4 | run_dens: True 5 | model_cfg: 6 | swin_model_name: 'swin-base' 7 | swin_model_config: './configs/swin_transformer/swin-base_16xb64_in1k-384px.py' 8 | swin_model_checkpoint: './pretrain/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 9 | effi_model_name: 'efficient-b4' 10 | effi_model_config: './configs/efficientnet/efficientnet-b4_8xb32_in1k.py' 11 | effi_model_checkpoint: './pretrain/efficientnet-b4_3rdparty_8xb32-aa_in1k_20220119-45b8bd2b.pth' 12 | dens_model_name: 'dense121' 13 | dens_model_config: './configs/densenet/densenet121_4xb256_in1k.py' 14 | dens_model_checkpoint: './pretrain/densenet121_4xb256_in1k_20220426-07450f99.pth' 15 | data_cfg: 16 | chest: 17 | N_way: 19 18 | images_dir: './data/MedFMC/chest/images' 19 | train_list_txt: './data/MedFMC/chest/trainval.txt' 20 | test_list_txt: './data/MedFMC/chest/test_WithLabel.txt' 21 | endo: 22 | N_way: 4 23 | images_dir: './data/MedFMC/endo/images' 24 | train_list_txt: './data/MedFMC/endo/trainval.txt' 25 | test_list_txt: './data/MedFMC/endo/test_WithLabel.txt' 26 | method_cfg: 27 | K_shot_set: [1, 5, 10] 28 | max_iters: 10 29 | -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PYTORCH="1.8.1" 2 | ARG CUDA="10.2" 3 | ARG CUDNN="7" 4 | 5 | FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel 6 | 7 | ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX" 8 | ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all" 9 | ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../" 10 | 11 | # To fix GPG key error when running apt-get update 12 | RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub 13 | RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub 14 | 15 | RUN apt-get update && apt-get install -y git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 libgl1-mesa-glx \ 16 | && apt-get clean \ 17 | && rm -rf /var/lib/apt/lists/* 18 | 19 | RUN conda clean --all 20 | 21 | # Install MMCV 22 | ARG PYTORCH 23 | ARG CUDA 24 | ARG MMCV 25 | RUN ["/bin/bash", "-c", "pip install --no-cache-dir mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu${CUDA//./}/torch${PYTORCH}/index.html"] 26 | 27 | # Install other dependencies 28 | ENV FORCE_CUDA="1" 29 | RUN pip install mmcls==0.25.0 openmim scipy scikit-learn ftfy regex tqdm 30 | # RUN git clone git@github.com:MengzhangLI/MedFMC.git /MedFMC 31 | WORKDIR /medfmc_exp 32 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_1-shot_train_exp4.txt: -------------------------------------------------------------------------------- 1 | 5DDCA02820906AD.png 1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 2 | 5B42FF519E87FE.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 3 | DX.1.2.392.200036.9125.4.0.487536272.161441174.2795306561.png 1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 4 | DX.1.2.392.200036.9125.4.0.487563892.1568499094.2795306561.png 0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 5 | 5CAAC0CFEB0B80.png 1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 6 | 5D817AC12EBC2E8.png 1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 7 | 5DDF87971070FEE.png 1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0 8 | DX.1.2.840.113619.2.369.4.2147483647.1572241344.613743.png 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 9 | 5CBC1D85175C88B.png 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0 10 | 5CDE29862538C58.png 0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 11 | 5C7494209E01F3.png 0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0 12 | 5CF728A22460CBA.png 1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 13 | 5E01D71A17640CE.png 1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 14 | 5B8F33931F44C1.png 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 15 | 5CDB65BB20941C2.png 0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0 16 | 5B31F703145CBE3.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 17 | 5D50BA8F1EB4F1D.png 0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0 18 | 5B038B1585CD55.png 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 19 | 5CDCBE9918E0776.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 20 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_1-shot_train_exp1.txt: -------------------------------------------------------------------------------- 1 | DX.1.2.392.200046.100.2.1.69131194618.191116084230.1.1.1.png 1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2 | 5C2EB54413D4CEC.png 0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0 3 | 5CF8AF1E514799.png 1,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 4 | 5DFDB99361E42FD.png 1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 5 | 5B8DE4FE514B11.png 1,0,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0 6 | 5B947304C506AD.png 1,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 7 | DX.1.2.0030716800033892292019101709471086644406.png 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 8 | 5CD7D8EF5A0566.png 0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0 9 | 5E1ADCE05680176.png 1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 10 | 5C613091BD474B.png 0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 11 | 5CF8729C26B0FA3.png 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 12 | CR.1.2.156.600734.516764694.1648.1572570106.819.0.1.png 0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 13 | DX.1.3.46.670589.26.802544.25.20191104.123508.306128.0.png 1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1 14 | 5D0C278B2354767.png 1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0 15 | 5E23EE5AF64A05.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 16 | 5AF949B1440523.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 17 | 5D50BA8F1EB4F1D.png 0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0 18 | 5C11C11B1184018.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 19 | DX.1.2.392.200036.9125.4.0.487527527.2272486806.2795306561.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 20 | -------------------------------------------------------------------------------- /data_backup/MedFMC/endo/endo_1-shot_train_exp2.txt: -------------------------------------------------------------------------------- 1 | 13333_2021.01_0003_41332353.png 1 0 0 0 2 | 13333_2021.01_0003_41583338.png 1 1 1 0 3 | 13333_2021.01_0003_41331736.png 1 1 1 0 4 | 13333_2021.01_0003_41583369.png 1 0 1 0 5 | 13333_2021.01_0003_41332418.png 1 0 0 0 6 | 13333_2021.01_0003_41583134.png 1 0 1 0 7 | 13333_2021.07_0001_50072119.png 1 1 1 0 8 | 13333_2021.07_0001_50072106.png 1 1 0 0 9 | 13333_2021.07_0001_50071486.png 0 1 0 0 10 | 13333_2021.07_0001_50071362.png 0 1 0 0 11 | 13333_2021.07_0001_50072151.png 1 1 1 0 12 | 13333_2021.07_0001_50071336.png 0 1 0 0 13 | 13333_2021.07_0001_50072291.png 0 1 0 0 14 | 13333_2021.09_0005_52292530.png 1 1 1 0 15 | 13333_2021.09_0005_52292442.png 1 0 1 0 16 | 13333_2021.09_0005_52291469.png 1 1 1 0 17 | 13333_2021.09_0005_52292521.png 1 1 1 0 18 | 13333_2021.09_0005_52292695.png 1 0 1 0 19 | 13333_2021.09_0005_52292083.png 1 0 1 0 20 | 13333_2021.09_0005_52293095.png 1 0 1 0 21 | 13333_2021.01_0005_41459046.png 0 0 0 1 22 | 13333_2021.01_0005_41459076.png 0 0 0 1 23 | 13333_2021.01_0005_41459039.png 0 0 0 1 24 | 13333_2021.01_0005_41459041.png 0 0 0 1 25 | 13333_2021.01_0005_41459000.png 0 0 0 1 26 | 13333_2021.01_0005_41459038.png 0 0 0 1 27 | 13333_2021.01_0005_41459043.png 0 0 0 1 28 | 13333_2021.01_0005_41459066.png 0 0 0 1 29 | 13333_2021.01_0005_41459042.png 0 0 1 1 30 | 13333_2021.01_0005_41459032.png 0 0 0 1 31 | 13333_2021.01_0005_41459035.png 0 0 0 1 32 | -------------------------------------------------------------------------------- /configs/efficientnet/efficientnet-b4_8xb32_in1k.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/models/efficientnet_b4.py', 3 | '../_base_/datasets/imagenet_bs32.py', 4 | '../_base_/schedules/imagenet_bs256.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | # dataset settings 9 | dataset_type = 'ImageNet' 10 | img_norm_cfg = dict( 11 | mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) 12 | train_pipeline = [ 13 | dict(type='LoadImageFromFile'), 14 | dict( 15 | type='RandomResizedCrop', 16 | size=380, 17 | efficientnet_style=True, 18 | interpolation='bicubic'), 19 | dict(type='RandomFlip', flip_prob=0.5, direction='horizontal'), 20 | dict(type='Normalize', **img_norm_cfg), 21 | dict(type='ImageToTensor', keys=['img']), 22 | dict(type='ToTensor', keys=['gt_label']), 23 | dict(type='Collect', keys=['img', 'gt_label']) 24 | ] 25 | test_pipeline = [ 26 | dict(type='LoadImageFromFile'), 27 | dict( 28 | type='CenterCrop', 29 | crop_size=380, 30 | efficientnet_style=True, 31 | interpolation='bicubic'), 32 | dict(type='Normalize', **img_norm_cfg), 33 | dict(type='ImageToTensor', keys=['img']), 34 | dict(type='Collect', keys=['img']) 35 | ] 36 | data = dict( 37 | train=dict(pipeline=train_pipeline), 38 | val=dict(pipeline=test_pipeline), 39 | test=dict(pipeline=test_pipeline)) 40 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_1-shot_train_exp2.txt: -------------------------------------------------------------------------------- 1 | DX.1.3.46.670589.26.802544.25.20191118.155037.310397.0.png 1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0 2 | 5E291B65554E65.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 3 | 5E114EFD49706C8.png 1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 4 | CR.1.3.12.2.1107.5.3.57.20200.11.201911111659280906.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 5 | 5DF8332E3AE0F46.png 1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6 | 5E15218B615CE85.png 0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 7 | 5D88278B428C238.png 0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0 8 | DX.1.2.840.113619.2.369.4.2147483647.1572241222.580164.png 0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 9 | DX.1.2.002925210003416715201911040900195163843.png 0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 10 | 5D3912823C003CC.png 0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0 11 | 5E291B65554E65.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 12 | 5CF1C7B21BC8B24.png 1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0 13 | 5CA15A2610C4218.png 0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 14 | 5CDCBE9918E0776.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 15 | 5E23EE5AF64A05.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 16 | DX.1.2.392.200036.9125.4.0.487578742.2265343382.2795306561.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 17 | DX.1.3.46.670589.26.802544.25.20191107.91620.307079.0.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 18 | 5D155FD8330C1EB.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 19 | 5D4E7FDE13C0A95.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 20 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_1-shot_train_exp3.txt: -------------------------------------------------------------------------------- 1 | 5DCA02CC5104E2E.png 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2 | DX.1.2.840.113619.2.369.4.2147483647.1573429838.830976.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3 | 5DFDBA945D5C7C7.png 1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 4 | CR.1.3.12.2.1107.5.3.57.20200.11.201911071656540562.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 5 | 5DF1E3B51F879F.png 1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0 6 | 5DC4CB0755DC5AB.png 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 7 | DX.1.2.840.113564.920101.20191105135645546340.1003000225002.png 0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 8 | 5D4E6BA43FE8291.png 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 9 | 5DC8AEF43EB09A1.png 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 10 | 5C242C2D1E4C913.png 1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0 11 | 5CEF3653EE0FC1.png 0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0 12 | 5E1827B75594CCC.png 1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 13 | DX.1.2.392.200036.9125.4.0.487546999.891250070.2795306561.png 1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 14 | 5B8F33931F44C1.png 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 15 | 5D31144641801C6.png 0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0 16 | 5DC8BC1D42A056C.png 0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 17 | CR.1.2.156.600734.516764694.1648.1571876541.202.0.1.png 0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0 18 | 5B038B1585CD55.png 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 19 | DX.1.3.46.670589.26.802544.25.20191118.111243.310233.0.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 20 | -------------------------------------------------------------------------------- /configs/vit-b16_vpt/in21k-vitb16_vpt1_bs4_lr6e-4_1-shot_chest.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_dense.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | n = 1 10 | vpl = 1 11 | dataset = 'chest' 12 | nshot = 1 13 | run_name = f'in21k-vitb16_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 14 | 15 | model = dict( 16 | type='ImageClassifier', 17 | backbone=dict(type='PromptedVisionTransformer', prompt_length=1), 18 | head=dict( 19 | type='MultiLabelLinearClsHead', 20 | num_classes=19, 21 | in_channels=768, 22 | )) 23 | data = dict( 24 | samples_per_gpu=4, # use 2 gpus, total 128 25 | train=dict( 26 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 27 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 28 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 29 | 30 | optimizer = dict(lr=lr) 31 | 32 | log_config = dict( 33 | interval=10, hooks=[ 34 | dict(type='TextLoggerHook'), 35 | ]) 36 | 37 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 38 | work_dir = f'work_dirs/vpt/{run_name}' 39 | 40 | runner = dict(type='EpochBasedRunner', max_epochs=20) 41 | 42 | # yapf:disable 43 | log_config = dict( 44 | interval=10, 45 | hooks=[ 46 | dict(type='TextLoggerHook'), 47 | ]) 48 | -------------------------------------------------------------------------------- /configs/vit-b16_vpt/in21k-vitb16_vpt1_bs4_lr6e-4_1-shot_endo.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_dense.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | n = 1 10 | vpl = 1 11 | dataset = 'endo' 12 | nshot = 1 13 | run_name = f'in21k-vitb16_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 14 | 15 | model = dict( 16 | type='ImageClassifier', 17 | backbone=dict(type='PromptedVisionTransformer', prompt_length=1), 18 | head=dict( 19 | type='MultiLabelLinearClsHead', 20 | num_classes=4, 21 | in_channels=768, 22 | )) 23 | data = dict( 24 | samples_per_gpu=4, # use 2 gpus, total 128 25 | train=dict( 26 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 27 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 28 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 29 | 30 | optimizer = dict(lr=lr) 31 | 32 | log_config = dict( 33 | interval=10, hooks=[ 34 | dict(type='TextLoggerHook'), 35 | ]) 36 | 37 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 38 | work_dir = f'work_dirs/vpt/{run_name}' 39 | 40 | runner = dict(type='EpochBasedRunner', max_epochs=20) 41 | 42 | # yapf:disable 43 | log_config = dict( 44 | interval=10, 45 | hooks=[ 46 | dict(type='TextLoggerHook'), 47 | ]) 48 | -------------------------------------------------------------------------------- /configs/vit-b16_vpt/in21k-vitb16_vpt1_bs4_lr6e-4_10-shot_chest.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_dense.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | n = 1 10 | vpl = 1 11 | dataset = 'chest' 12 | nshot = 10 13 | run_name = f'in21k-vitb16_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 14 | 15 | model = dict( 16 | type='ImageClassifier', 17 | backbone=dict(type='PromptedVisionTransformer', prompt_length=1), 18 | head=dict( 19 | type='MultiLabelLinearClsHead', 20 | num_classes=19, 21 | in_channels=768, 22 | )) 23 | data = dict( 24 | samples_per_gpu=4, # use 2 gpus, total 128 25 | train=dict( 26 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 27 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 28 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 29 | 30 | optimizer = dict(lr=lr) 31 | 32 | log_config = dict( 33 | interval=10, hooks=[ 34 | dict(type='TextLoggerHook'), 35 | ]) 36 | 37 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 38 | work_dir = f'work_dirs/vpt/{run_name}' 39 | 40 | runner = dict(type='EpochBasedRunner', max_epochs=20) 41 | 42 | # yapf:disable 43 | log_config = dict( 44 | interval=10, 45 | hooks=[ 46 | dict(type='TextLoggerHook'), 47 | ]) 48 | -------------------------------------------------------------------------------- /configs/vit-b16_vpt/in21k-vitb16_vpt1_bs4_lr6e-4_10-shot_endo.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_dense.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | n = 1 10 | vpl = 1 11 | dataset = 'endo' 12 | nshot = 10 13 | run_name = f'in21k-vitb16_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 14 | 15 | model = dict( 16 | type='ImageClassifier', 17 | backbone=dict(type='PromptedVisionTransformer', prompt_length=1), 18 | head=dict( 19 | type='MultiLabelLinearClsHead', 20 | num_classes=4, 21 | in_channels=768, 22 | )) 23 | data = dict( 24 | samples_per_gpu=4, # use 2 gpus, total 128 25 | train=dict( 26 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 27 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 28 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 29 | 30 | optimizer = dict(lr=lr) 31 | 32 | log_config = dict( 33 | interval=10, hooks=[ 34 | dict(type='TextLoggerHook'), 35 | ]) 36 | 37 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 38 | work_dir = f'work_dirs/vpt/{run_name}' 39 | 40 | runner = dict(type='EpochBasedRunner', max_epochs=20) 41 | 42 | # yapf:disable 43 | log_config = dict( 44 | interval=10, 45 | hooks=[ 46 | dict(type='TextLoggerHook'), 47 | ]) 48 | -------------------------------------------------------------------------------- /configs/vit-b16_vpt/in21k-vitb16_vpt1_bs4_lr6e-4_5-shot_chest.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_dense.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | n = 1 10 | vpl = 1 11 | dataset = 'chest' 12 | nshot = 5 13 | run_name = f'in21k-vitb16_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 14 | 15 | model = dict( 16 | type='ImageClassifier', 17 | backbone=dict(type='PromptedVisionTransformer', prompt_length=1), 18 | head=dict( 19 | type='MultiLabelLinearClsHead', 20 | num_classes=19, 21 | in_channels=768, 22 | )) 23 | data = dict( 24 | samples_per_gpu=4, # use 2 gpus, total 128 25 | train=dict( 26 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 27 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 28 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 29 | 30 | optimizer = dict(lr=lr) 31 | 32 | log_config = dict( 33 | interval=10, hooks=[ 34 | dict(type='TextLoggerHook'), 35 | ]) 36 | 37 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 38 | work_dir = f'work_dirs/vpt/{run_name}' 39 | 40 | runner = dict(type='EpochBasedRunner', max_epochs=20) 41 | 42 | # yapf:disable 43 | log_config = dict( 44 | interval=10, 45 | hooks=[ 46 | dict(type='TextLoggerHook'), 47 | ]) 48 | -------------------------------------------------------------------------------- /configs/vit-b16_vpt/in21k-vitb16_vpt1_bs4_lr6e-4_5-shot_endo.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_dense.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | n = 1 10 | vpl = 1 11 | dataset = 'endo' 12 | nshot = 5 13 | run_name = f'in21k-vitb16_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 14 | 15 | model = dict( 16 | type='ImageClassifier', 17 | backbone=dict(type='PromptedVisionTransformer', prompt_length=1), 18 | head=dict( 19 | type='MultiLabelLinearClsHead', 20 | num_classes=4, 21 | in_channels=768, 22 | )) 23 | data = dict( 24 | samples_per_gpu=4, # use 2 gpus, total 128 25 | train=dict( 26 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 27 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 28 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 29 | 30 | optimizer = dict(lr=lr) 31 | 32 | log_config = dict( 33 | interval=10, hooks=[ 34 | dict(type='TextLoggerHook'), 35 | ]) 36 | 37 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 38 | work_dir = f'work_dirs/vpt/{run_name}' 39 | 40 | runner = dict(type='EpochBasedRunner', max_epochs=20) 41 | 42 | # yapf:disable 43 | log_config = dict( 44 | interval=10, 45 | hooks=[ 46 | dict(type='TextLoggerHook'), 47 | ]) 48 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_1-shot_train_exp5.txt: -------------------------------------------------------------------------------- 1 | 5BFE2DCB233CB47.png 1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 2 | 5CFDFD081644C69.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3 | CR.1.2.156.600734.516764694.906304.1571272610.67.0.1.png 1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 4 | 5DFAE63F3F7C325.png 0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 5 | 5E095B7B45F499B.png 1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 6 | 5B9CC4AC1278857.png 1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 7 | 5E13FEBB4934D4E.png 1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 8 | DX.1.2.392.200036.9125.4.0.487544196.856778134.2795306561.png 1,0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0 9 | DX.1.3.46.670589.26.802544.25.20191106.152816.306953.0.png 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 10 | DX.1.2.00311313000340096020191024083701262875937.png 0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0 11 | 5D9A9398109C9CE.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 12 | 5CF877421BBC1EB.png 1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0 13 | 5D00525A96C81E.png 0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0 14 | 5CEF3653EE0FC1.png 0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0 15 | DX.1.2.840.113619.2.369.4.2147483647.1572240971.521069.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 16 | DX.1.2.392.200036.9125.4.0.487564169.769680790.2795306561.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 17 | CR.1.2.840.113564.199912075.2019111417420171237.1203801020003.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 18 | 5B1A21A377C692.png 1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 19 | 5CDCBE9918E0776.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 20 | -------------------------------------------------------------------------------- /configs/vit-b16_vpt/in21k-vitb16_vpt1_bs4_lr6e-4_1-shot_colon.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/colon.py', 4 | '../_base_/schedules/imagenet_dense.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | n = 1 10 | vpl = 1 11 | dataset = 'colon' 12 | nshot = 1 13 | run_name = f'in21k-vitb16_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 14 | 15 | model = dict( 16 | type='ImageClassifier', 17 | backbone=dict(type='PromptedVisionTransformer', prompt_length=1), 18 | head=dict( 19 | type='LinearClsHead', 20 | num_classes=2, 21 | in_channels=768, 22 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 23 | )) 24 | data = dict( 25 | samples_per_gpu=4, # use 2 gpus, total 128 26 | train=dict( 27 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 28 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 29 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 30 | 31 | optimizer = dict(lr=lr) 32 | 33 | log_config = dict( 34 | interval=10, hooks=[ 35 | dict(type='TextLoggerHook'), 36 | ]) 37 | 38 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 39 | work_dir = f'work_dirs/vpt/{run_name}' 40 | 41 | runner = dict(type='EpochBasedRunner', max_epochs=20) 42 | 43 | # yapf:disable 44 | log_config = dict( 45 | interval=10, 46 | hooks=[ 47 | dict(type='TextLoggerHook'), 48 | ]) 49 | -------------------------------------------------------------------------------- /configs/vit-b16_vpt/in21k-vitb16_vpt1_bs4_lr6e-4_10-shot_colon.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/colon.py', 4 | '../_base_/schedules/imagenet_dense.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | n = 1 10 | vpl = 1 11 | dataset = 'colon' 12 | nshot = 10 13 | run_name = f'in21k-vitb16_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 14 | 15 | model = dict( 16 | type='ImageClassifier', 17 | backbone=dict(type='PromptedVisionTransformer', prompt_length=1), 18 | head=dict( 19 | type='LinearClsHead', 20 | num_classes=2, 21 | in_channels=768, 22 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 23 | )) 24 | data = dict( 25 | samples_per_gpu=4, # use 2 gpus, total 128 26 | train=dict( 27 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 28 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 29 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 30 | 31 | optimizer = dict(lr=lr) 32 | 33 | log_config = dict( 34 | interval=10, hooks=[ 35 | dict(type='TextLoggerHook'), 36 | ]) 37 | 38 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 39 | work_dir = f'work_dirs/vpt/{run_name}' 40 | 41 | runner = dict(type='EpochBasedRunner', max_epochs=20) 42 | 43 | # yapf:disable 44 | log_config = dict( 45 | interval=10, 46 | hooks=[ 47 | dict(type='TextLoggerHook'), 48 | ]) 49 | -------------------------------------------------------------------------------- /configs/vit-b16_vpt/in21k-vitb16_vpt1_bs4_lr6e-4_5-shot_colon.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/colon.py', 4 | '../_base_/schedules/imagenet_dense.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 6e-4 9 | n = 1 10 | vpl = 1 11 | dataset = 'colon' 12 | nshot = 5 13 | run_name = f'in21k-vitb16_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 14 | 15 | model = dict( 16 | type='ImageClassifier', 17 | backbone=dict(type='PromptedVisionTransformer', prompt_length=1), 18 | head=dict( 19 | type='LinearClsHead', 20 | num_classes=2, 21 | in_channels=768, 22 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 23 | )) 24 | data = dict( 25 | samples_per_gpu=4, # use 2 gpus, total 128 26 | train=dict( 27 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 28 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 29 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 30 | 31 | optimizer = dict(lr=lr) 32 | 33 | log_config = dict( 34 | interval=10, hooks=[ 35 | dict(type='TextLoggerHook'), 36 | ]) 37 | 38 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 39 | work_dir = f'work_dirs/vpt/{run_name}' 40 | 41 | runner = dict(type='EpochBasedRunner', max_epochs=20) 42 | 43 | # yapf:disable 44 | log_config = dict( 45 | interval=10, 46 | hooks=[ 47 | dict(type='TextLoggerHook'), 48 | ]) 49 | -------------------------------------------------------------------------------- /configs/ablation_exp/vitb16_1-shot_colon.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/colon.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | exp_num = 1 10 | dataset = 'colon' 11 | nshot = 1 12 | run_name = f'in21k-vitb16_bs4_lr{lr}_{nshot}-shot_{dataset}' 13 | model = dict( 14 | type='ImageClassifier', 15 | backbone=dict( 16 | type='VisionTransformer', 17 | arch='b', 18 | img_size=224, 19 | patch_size=16, 20 | drop_rate=0.1), 21 | head=dict( 22 | type='LinearClsHead', 23 | num_classes=2, 24 | in_channels=768, 25 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 26 | )) 27 | data = dict( 28 | samples_per_gpu=4, # use 2 gpus, total 128 29 | train=dict( 30 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 31 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 32 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 33 | optimizer = dict(lr=lr) 34 | 35 | log_config = dict( 36 | interval=10, hooks=[ 37 | dict(type='TextLoggerHook'), 38 | ]) 39 | 40 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 41 | work_dir = f'work_dirs/vit/{run_name}' 42 | 43 | runner = dict(type='EpochBasedRunner', max_epochs=20) 44 | 45 | # yapf:disable 46 | log_config = dict( 47 | interval=10, 48 | hooks=[ 49 | dict(type='TextLoggerHook'), 50 | ]) 51 | -------------------------------------------------------------------------------- /configs/ablation_exp/vitb16_10-shot_colon.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/colon.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | exp_num = 1 10 | dataset = 'colon' 11 | nshot = 10 12 | run_name = f'in21k-vitb16_bs4_lr{lr}_{nshot}-shot_{dataset}' 13 | model = dict( 14 | type='ImageClassifier', 15 | backbone=dict( 16 | type='VisionTransformer', 17 | arch='b', 18 | img_size=224, 19 | patch_size=16, 20 | drop_rate=0.1), 21 | head=dict( 22 | type='LinearClsHead', 23 | num_classes=2, 24 | in_channels=768, 25 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 26 | )) 27 | data = dict( 28 | samples_per_gpu=4, # use 2 gpus, total 128 29 | train=dict( 30 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 31 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 32 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 33 | optimizer = dict(lr=lr) 34 | 35 | log_config = dict( 36 | interval=10, hooks=[ 37 | dict(type='TextLoggerHook'), 38 | ]) 39 | 40 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 41 | work_dir = f'work_dirs/vit/{run_name}' 42 | 43 | runner = dict(type='EpochBasedRunner', max_epochs=20) 44 | 45 | # yapf:disable 46 | log_config = dict( 47 | interval=10, 48 | hooks=[ 49 | dict(type='TextLoggerHook'), 50 | ]) 51 | -------------------------------------------------------------------------------- /configs/ablation_exp/vitb16_5-shot_colon.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/colon.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | exp_num = 1 10 | dataset = 'colon' 11 | nshot = 5 12 | run_name = f'in21k-vitb16_bs4_lr{lr}_{nshot}-shot_{dataset}' 13 | model = dict( 14 | type='ImageClassifier', 15 | backbone=dict( 16 | type='VisionTransformer', 17 | arch='b', 18 | img_size=224, 19 | patch_size=16, 20 | drop_rate=0.1), 21 | head=dict( 22 | type='LinearClsHead', 23 | num_classes=2, 24 | in_channels=768, 25 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 26 | )) 27 | data = dict( 28 | samples_per_gpu=4, # use 2 gpus, total 128 29 | train=dict( 30 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 31 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 32 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 33 | optimizer = dict(lr=lr) 34 | 35 | log_config = dict( 36 | interval=10, hooks=[ 37 | dict(type='TextLoggerHook'), 38 | ]) 39 | 40 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 41 | work_dir = f'work_dirs/vit/{run_name}' 42 | 43 | runner = dict(type='EpochBasedRunner', max_epochs=20) 44 | 45 | # yapf:disable 46 | log_config = dict( 47 | interval=10, 48 | hooks=[ 49 | dict(type='TextLoggerHook'), 50 | ]) 51 | -------------------------------------------------------------------------------- /configs/_base_/datasets/imagenet_bs32.py: -------------------------------------------------------------------------------- 1 | # dataset settings 2 | dataset_type = 'ImageNet' 3 | img_norm_cfg = dict( 4 | mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) 5 | train_pipeline = [ 6 | dict(type='LoadImageFromFile'), 7 | dict(type='RandomResizedCrop', size=224), 8 | dict(type='RandomFlip', flip_prob=0.5, direction='horizontal'), 9 | dict(type='Normalize', **img_norm_cfg), 10 | dict(type='ImageToTensor', keys=['img']), 11 | dict(type='ToTensor', keys=['gt_label']), 12 | dict(type='Collect', keys=['img', 'gt_label']) 13 | ] 14 | test_pipeline = [ 15 | dict(type='LoadImageFromFile'), 16 | dict(type='Resize', size=(256, -1)), 17 | dict(type='CenterCrop', crop_size=224), 18 | dict(type='Normalize', **img_norm_cfg), 19 | dict(type='ImageToTensor', keys=['img']), 20 | dict(type='Collect', keys=['img']) 21 | ] 22 | data = dict( 23 | samples_per_gpu=32, 24 | workers_per_gpu=2, 25 | train=dict( 26 | type=dataset_type, 27 | data_prefix='data/imagenet/train', 28 | pipeline=train_pipeline), 29 | val=dict( 30 | type=dataset_type, 31 | data_prefix='data/imagenet/val', 32 | ann_file='data/imagenet/meta/val.txt', 33 | pipeline=test_pipeline), 34 | test=dict( 35 | # replace `data/val` with `data/test` for standard test 36 | type=dataset_type, 37 | data_prefix='data/imagenet/val', 38 | ann_file='data/imagenet/meta/val.txt', 39 | pipeline=test_pipeline)) 40 | evaluation = dict(interval=1, metric='accuracy', save_best='auto') 41 | -------------------------------------------------------------------------------- /configs/_base_/datasets/imagenet_bs64.py: -------------------------------------------------------------------------------- 1 | # dataset settings 2 | dataset_type = 'ImageNet' 3 | img_norm_cfg = dict( 4 | mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) 5 | train_pipeline = [ 6 | dict(type='LoadImageFromFile'), 7 | dict(type='RandomResizedCrop', size=224), 8 | dict(type='RandomFlip', flip_prob=0.5, direction='horizontal'), 9 | dict(type='Normalize', **img_norm_cfg), 10 | dict(type='ImageToTensor', keys=['img']), 11 | dict(type='ToTensor', keys=['gt_label']), 12 | dict(type='Collect', keys=['img', 'gt_label']) 13 | ] 14 | test_pipeline = [ 15 | dict(type='LoadImageFromFile'), 16 | dict(type='Resize', size=(256, -1)), 17 | dict(type='CenterCrop', crop_size=224), 18 | dict(type='Normalize', **img_norm_cfg), 19 | dict(type='ImageToTensor', keys=['img']), 20 | dict(type='Collect', keys=['img']) 21 | ] 22 | data = dict( 23 | samples_per_gpu=64, 24 | workers_per_gpu=2, 25 | train=dict( 26 | type=dataset_type, 27 | data_prefix='data/imagenet/train', 28 | pipeline=train_pipeline), 29 | val=dict( 30 | type=dataset_type, 31 | data_prefix='data/imagenet/val', 32 | ann_file='data/imagenet/meta/val.txt', 33 | pipeline=test_pipeline), 34 | test=dict( 35 | # replace `data/val` with `data/test` for standard test 36 | type=dataset_type, 37 | data_prefix='data/imagenet/val', 38 | ann_file='data/imagenet/meta/val.txt', 39 | pipeline=test_pipeline)) 40 | evaluation = dict(interval=1, metric='accuracy', save_best='auto') 41 | -------------------------------------------------------------------------------- /configs/_base_/datasets/imagenet_bs64_swin_384.py: -------------------------------------------------------------------------------- 1 | # dataset settings 2 | dataset_type = 'ImageNet' 3 | img_norm_cfg = dict( 4 | mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) 5 | train_pipeline = [ 6 | dict(type='LoadImageFromFile'), 7 | dict( 8 | type='RandomResizedCrop', 9 | size=384, 10 | backend='pillow', 11 | interpolation='bicubic'), 12 | dict(type='RandomFlip', flip_prob=0.5, direction='horizontal'), 13 | dict(type='Normalize', **img_norm_cfg), 14 | dict(type='ImageToTensor', keys=['img']), 15 | dict(type='ToTensor', keys=['gt_label']), 16 | dict(type='Collect', keys=['img', 'gt_label']) 17 | ] 18 | test_pipeline = [ 19 | dict(type='LoadImageFromFile'), 20 | dict(type='Resize', size=384, backend='pillow', interpolation='bicubic'), 21 | dict(type='Normalize', **img_norm_cfg), 22 | dict(type='ImageToTensor', keys=['img']), 23 | dict(type='Collect', keys=['img']) 24 | ] 25 | data = dict( 26 | samples_per_gpu=64, 27 | workers_per_gpu=8, 28 | train=dict( 29 | type=dataset_type, 30 | data_prefix='data/imagenet/train', 31 | pipeline=train_pipeline), 32 | val=dict( 33 | type=dataset_type, 34 | data_prefix='data/imagenet/val', 35 | ann_file='data/imagenet/meta/val.txt', 36 | pipeline=test_pipeline), 37 | test=dict( 38 | # replace `data/val` with `data/test` for standard test 39 | type=dataset_type, 40 | data_prefix='data/imagenet/val', 41 | ann_file='data/imagenet/meta/val.txt', 42 | pipeline=test_pipeline)) 43 | evaluation = dict(interval=10, metric='accuracy', save_best='auto') 44 | -------------------------------------------------------------------------------- /configs/ablation_exp/vitb16_1-shot_chest.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | exp_num = 1 10 | dataset = 'chest' 11 | nshot = 1 12 | run_name = f'in21k-vitb16_bs4_lr{lr}_{nshot}-shot_{dataset}' 13 | model = dict( 14 | type='ImageClassifier', 15 | backbone=dict( 16 | type='VisionTransformer', 17 | arch='b', 18 | img_size=224, 19 | patch_size=16, 20 | drop_rate=0.1, 21 | ), 22 | head=dict( 23 | type='MultiLabelLinearClsHead', 24 | num_classes=19, 25 | in_channels=768, 26 | loss=dict( 27 | type='CrossEntropyLoss', 28 | use_sigmoid=True, 29 | reduction='mean', 30 | loss_weight=1.0), 31 | )) 32 | data = dict( 33 | samples_per_gpu=4, # use 2 gpus, total 128 34 | train=dict( 35 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 36 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 37 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 38 | optimizer = dict(lr=lr) 39 | 40 | log_config = dict( 41 | interval=10, hooks=[ 42 | dict(type='TextLoggerHook'), 43 | ]) 44 | 45 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 46 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 47 | 48 | runner = dict(type='EpochBasedRunner', max_epochs=20) 49 | 50 | # yapf:disable 51 | log_config = dict( 52 | interval=10, 53 | hooks=[ 54 | dict(type='TextLoggerHook'), 55 | ]) 56 | -------------------------------------------------------------------------------- /configs/ablation_exp/vitb16_1-shot_endo.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | exp_num = 1 10 | dataset = 'endo' 11 | nshot = 1 12 | run_name = f'in21k-vitb16_bs4_lr{lr}_{nshot}-shot_{dataset}' 13 | model = dict( 14 | type='ImageClassifier', 15 | backbone=dict( 16 | type='VisionTransformer', 17 | arch='b', 18 | img_size=224, 19 | patch_size=16, 20 | drop_rate=0.1, 21 | ), 22 | head=dict( 23 | type='MultiLabelLinearClsHead', 24 | num_classes=4, 25 | in_channels=768, 26 | loss=dict( 27 | type='CrossEntropyLoss', 28 | use_sigmoid=True, 29 | reduction='mean', 30 | loss_weight=1.0), 31 | )) 32 | data = dict( 33 | samples_per_gpu=4, # use 2 gpus, total 128 34 | train=dict( 35 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 36 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 37 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 38 | optimizer = dict(lr=lr) 39 | 40 | log_config = dict( 41 | interval=10, hooks=[ 42 | dict(type='TextLoggerHook'), 43 | ]) 44 | 45 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 46 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 47 | 48 | runner = dict(type='EpochBasedRunner', max_epochs=20) 49 | 50 | # yapf:disable 51 | log_config = dict( 52 | interval=10, 53 | hooks=[ 54 | dict(type='TextLoggerHook'), 55 | ]) 56 | -------------------------------------------------------------------------------- /configs/ablation_exp/vitb16_5-shot_chest.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | exp_num = 1 10 | dataset = 'chest' 11 | nshot = 5 12 | run_name = f'in21k-vitb16_bs4_lr{lr}_{nshot}-shot_{dataset}' 13 | model = dict( 14 | type='ImageClassifier', 15 | backbone=dict( 16 | type='VisionTransformer', 17 | arch='b', 18 | img_size=224, 19 | patch_size=16, 20 | drop_rate=0.1, 21 | ), 22 | head=dict( 23 | type='MultiLabelLinearClsHead', 24 | num_classes=19, 25 | in_channels=768, 26 | loss=dict( 27 | type='CrossEntropyLoss', 28 | use_sigmoid=True, 29 | reduction='mean', 30 | loss_weight=1.0), 31 | )) 32 | data = dict( 33 | samples_per_gpu=4, # use 2 gpus, total 128 34 | train=dict( 35 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 36 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 37 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 38 | optimizer = dict(lr=lr) 39 | 40 | log_config = dict( 41 | interval=10, hooks=[ 42 | dict(type='TextLoggerHook'), 43 | ]) 44 | 45 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 46 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 47 | 48 | runner = dict(type='EpochBasedRunner', max_epochs=20) 49 | 50 | # yapf:disable 51 | log_config = dict( 52 | interval=10, 53 | hooks=[ 54 | dict(type='TextLoggerHook'), 55 | ]) 56 | -------------------------------------------------------------------------------- /configs/ablation_exp/vitb16_5-shot_endo.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | exp_num = 1 10 | dataset = 'endo' 11 | nshot = 5 12 | run_name = f'in21k-vitb16_bs4_lr{lr}_{nshot}-shot_{dataset}' 13 | model = dict( 14 | type='ImageClassifier', 15 | backbone=dict( 16 | type='VisionTransformer', 17 | arch='b', 18 | img_size=224, 19 | patch_size=16, 20 | drop_rate=0.1, 21 | ), 22 | head=dict( 23 | type='MultiLabelLinearClsHead', 24 | num_classes=4, 25 | in_channels=768, 26 | loss=dict( 27 | type='CrossEntropyLoss', 28 | use_sigmoid=True, 29 | reduction='mean', 30 | loss_weight=1.0), 31 | )) 32 | data = dict( 33 | samples_per_gpu=4, # use 2 gpus, total 128 34 | train=dict( 35 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 36 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 37 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 38 | optimizer = dict(lr=lr) 39 | 40 | log_config = dict( 41 | interval=10, hooks=[ 42 | dict(type='TextLoggerHook'), 43 | ]) 44 | 45 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 46 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 47 | 48 | runner = dict(type='EpochBasedRunner', max_epochs=20) 49 | 50 | # yapf:disable 51 | log_config = dict( 52 | interval=10, 53 | hooks=[ 54 | dict(type='TextLoggerHook'), 55 | ]) 56 | -------------------------------------------------------------------------------- /configs/ablation_exp/vitb16_10-shot_chest.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/chest.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | exp_num = 1 10 | dataset = 'chest' 11 | nshot = 10 12 | run_name = f'in21k-vitb16_bs4_lr{lr}_{nshot}-shot_{dataset}' 13 | model = dict( 14 | type='ImageClassifier', 15 | backbone=dict( 16 | type='VisionTransformer', 17 | arch='b', 18 | img_size=224, 19 | patch_size=16, 20 | drop_rate=0.1, 21 | ), 22 | head=dict( 23 | type='MultiLabelLinearClsHead', 24 | num_classes=19, 25 | in_channels=768, 26 | loss=dict( 27 | type='CrossEntropyLoss', 28 | use_sigmoid=True, 29 | reduction='mean', 30 | loss_weight=1.0), 31 | )) 32 | data = dict( 33 | samples_per_gpu=4, # use 2 gpus, total 128 34 | train=dict( 35 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 36 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 37 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 38 | optimizer = dict(lr=lr) 39 | 40 | log_config = dict( 41 | interval=10, hooks=[ 42 | dict(type='TextLoggerHook'), 43 | ]) 44 | 45 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 46 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 47 | 48 | runner = dict(type='EpochBasedRunner', max_epochs=20) 49 | 50 | # yapf:disable 51 | log_config = dict( 52 | interval=10, 53 | hooks=[ 54 | dict(type='TextLoggerHook'), 55 | ]) 56 | -------------------------------------------------------------------------------- /configs/ablation_exp/vitb16_10-shot_endo.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/custom_imports.py', 3 | '../_base_/datasets/endoscopy.py', 4 | '../_base_/schedules/imagenet_bs4096_AdamW.py', 5 | '../_base_/default_runtime.py', 6 | ] 7 | 8 | lr = 1e-4 9 | exp_num = 1 10 | dataset = 'endo' 11 | nshot = 10 12 | run_name = f'in21k-vitb16_bs4_lr{lr}_{nshot}-shot_{dataset}' 13 | model = dict( 14 | type='ImageClassifier', 15 | backbone=dict( 16 | type='VisionTransformer', 17 | arch='b', 18 | img_size=224, 19 | patch_size=16, 20 | drop_rate=0.1, 21 | ), 22 | head=dict( 23 | type='MultiLabelLinearClsHead', 24 | num_classes=4, 25 | in_channels=768, 26 | loss=dict( 27 | type='CrossEntropyLoss', 28 | use_sigmoid=True, 29 | reduction='mean', 30 | loss_weight=1.0), 31 | )) 32 | data = dict( 33 | samples_per_gpu=4, # use 2 gpus, total 128 34 | train=dict( 35 | ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train.txt'), 36 | val=dict(ann_file=f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val.txt'), 37 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 38 | optimizer = dict(lr=lr) 39 | 40 | log_config = dict( 41 | interval=10, hooks=[ 42 | dict(type='TextLoggerHook'), 43 | ]) 44 | 45 | load_from = 'work_dirs/vit-base-p16_3rdparty_pt-64xb64_in1k-224_20210928-02284250.pth' 46 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 47 | 48 | runner = dict(type='EpochBasedRunner', max_epochs=20) 49 | 50 | # yapf:disable 51 | log_config = dict( 52 | interval=10, 53 | hooks=[ 54 | dict(type='TextLoggerHook'), 55 | ]) 56 | -------------------------------------------------------------------------------- /configs/swin-b_vpt/in21k-swin-b_vpt5_bs4_lr5e-2_1-shot_chest_adamw.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/chest.py', 3 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 4 | '../_base_/default_runtime.py', 5 | '../_base_/custom_imports.py', 6 | ] 7 | 8 | lr = 5e-2 9 | n = 1 10 | vpl = 5 11 | dataset = 'chest' 12 | exp_num = 1 13 | nshot = 1 14 | run_name = f'in21k-swin-b_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 15 | 16 | model = dict( 17 | type='ImageClassifier', 18 | backbone=dict( 19 | type='PromptedSwinTransformer', 20 | prompt_length=vpl, 21 | arch='base', 22 | img_size=384, 23 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 24 | neck=None, 25 | head=dict( 26 | type='MultiLabelLinearClsHead', 27 | num_classes=19, 28 | in_channels=1024, 29 | )) 30 | data = dict( 31 | samples_per_gpu=4, # use 2 gpus, total 128 32 | train=dict( 33 | ann_file= 34 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train_exp{exp_num}.txt' 35 | ), 36 | val=dict( 37 | ann_file= 38 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val_exp{exp_num}.txt'), 39 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 40 | 41 | optimizer = dict(lr=lr) 42 | 43 | log_config = dict( 44 | interval=10, hooks=[ 45 | dict(type='TextLoggerHook'), 46 | ]) 47 | 48 | load_from = 'work_dirs/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 49 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 50 | 51 | runner = dict(type='EpochBasedRunner', max_epochs=20) 52 | 53 | # yapf:disable 54 | log_config = dict( 55 | interval=10, 56 | hooks=[ 57 | dict(type='TextLoggerHook'), 58 | ]) 59 | -------------------------------------------------------------------------------- /configs/swin-b_vpt/in21k-swin-b_vpt5_bs4_lr5e-2_1-shot_endo_adamw.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/endoscopy.py', 3 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 4 | '../_base_/default_runtime.py', 5 | '../_base_/custom_imports.py', 6 | ] 7 | 8 | lr = 5e-2 9 | n = 1 10 | vpl = 5 11 | dataset = 'endo' 12 | exp_num = 1 13 | nshot = 1 14 | run_name = f'in21k-swin-b_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 15 | 16 | model = dict( 17 | type='ImageClassifier', 18 | backbone=dict( 19 | type='PromptedSwinTransformer', 20 | prompt_length=vpl, 21 | arch='base', 22 | img_size=384, 23 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 24 | neck=None, 25 | head=dict( 26 | type='MultiLabelLinearClsHead', 27 | num_classes=4, 28 | in_channels=1024, 29 | )) 30 | data = dict( 31 | samples_per_gpu=4, # use 2 gpus, total 128 32 | train=dict( 33 | ann_file= 34 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train_exp{exp_num}.txt' 35 | ), 36 | val=dict( 37 | ann_file= 38 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val_exp{exp_num}.txt'), 39 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 40 | 41 | optimizer = dict(lr=lr) 42 | 43 | log_config = dict( 44 | interval=10, hooks=[ 45 | dict(type='TextLoggerHook'), 46 | ]) 47 | 48 | load_from = 'work_dirs/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 49 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 50 | 51 | runner = dict(type='EpochBasedRunner', max_epochs=20) 52 | 53 | # yapf:disable 54 | log_config = dict( 55 | interval=10, 56 | hooks=[ 57 | dict(type='TextLoggerHook'), 58 | ]) 59 | -------------------------------------------------------------------------------- /configs/swin-b_vpt/in21k-swin-b_vpt5_bs4_lr5e-2_5-shot_chest_adamw.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/chest.py', 3 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 4 | '../_base_/default_runtime.py', 5 | '../_base_/custom_imports.py', 6 | ] 7 | 8 | lr = 5e-2 9 | n = 1 10 | vpl = 5 11 | dataset = 'chest' 12 | exp_num = 1 13 | nshot = 5 14 | run_name = f'in21k-swin-b_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 15 | 16 | model = dict( 17 | type='ImageClassifier', 18 | backbone=dict( 19 | type='PromptedSwinTransformer', 20 | prompt_length=vpl, 21 | arch='base', 22 | img_size=384, 23 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 24 | neck=None, 25 | head=dict( 26 | type='MultiLabelLinearClsHead', 27 | num_classes=19, 28 | in_channels=1024, 29 | )) 30 | data = dict( 31 | samples_per_gpu=4, # use 2 gpus, total 128 32 | train=dict( 33 | ann_file= 34 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train_exp{exp_num}.txt' 35 | ), 36 | val=dict( 37 | ann_file= 38 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val_exp{exp_num}.txt'), 39 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 40 | 41 | optimizer = dict(lr=lr) 42 | 43 | log_config = dict( 44 | interval=10, hooks=[ 45 | dict(type='TextLoggerHook'), 46 | ]) 47 | 48 | load_from = 'work_dirs/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 49 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 50 | 51 | runner = dict(type='EpochBasedRunner', max_epochs=20) 52 | 53 | # yapf:disable 54 | log_config = dict( 55 | interval=10, 56 | hooks=[ 57 | dict(type='TextLoggerHook'), 58 | ]) 59 | -------------------------------------------------------------------------------- /configs/swin-b_vpt/in21k-swin-b_vpt5_bs4_lr5e-2_5-shot_endo_adamw.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/endoscopy.py', 3 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 4 | '../_base_/default_runtime.py', 5 | '../_base_/custom_imports.py', 6 | ] 7 | 8 | lr = 5e-2 9 | n = 1 10 | vpl = 5 11 | dataset = 'endo' 12 | exp_num = 1 13 | nshot = 5 14 | run_name = f'in21k-swin-b_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 15 | 16 | model = dict( 17 | type='ImageClassifier', 18 | backbone=dict( 19 | type='PromptedSwinTransformer', 20 | prompt_length=vpl, 21 | arch='base', 22 | img_size=384, 23 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 24 | neck=None, 25 | head=dict( 26 | type='MultiLabelLinearClsHead', 27 | num_classes=4, 28 | in_channels=1024, 29 | )) 30 | data = dict( 31 | samples_per_gpu=4, # use 2 gpus, total 128 32 | train=dict( 33 | ann_file= 34 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train_exp{exp_num}.txt' 35 | ), 36 | val=dict( 37 | ann_file= 38 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val_exp{exp_num}.txt'), 39 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 40 | 41 | optimizer = dict(lr=lr) 42 | 43 | log_config = dict( 44 | interval=10, hooks=[ 45 | dict(type='TextLoggerHook'), 46 | ]) 47 | 48 | load_from = 'work_dirs/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 49 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 50 | 51 | runner = dict(type='EpochBasedRunner', max_epochs=20) 52 | 53 | # yapf:disable 54 | log_config = dict( 55 | interval=10, 56 | hooks=[ 57 | dict(type='TextLoggerHook'), 58 | ]) 59 | -------------------------------------------------------------------------------- /configs/swin-b_vpt/in21k-swin-b_vpt5_bs4_lr5e-2_10-shot_chest_adamw.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/chest.py', 3 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 4 | '../_base_/default_runtime.py', 5 | '../_base_/custom_imports.py', 6 | ] 7 | 8 | lr = 5e-2 9 | n = 1 10 | vpl = 5 11 | dataset = 'chest' 12 | exp_num = 1 13 | nshot = 10 14 | run_name = f'in21k-swin-b_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 15 | 16 | model = dict( 17 | type='ImageClassifier', 18 | backbone=dict( 19 | type='PromptedSwinTransformer', 20 | prompt_length=vpl, 21 | arch='base', 22 | img_size=384, 23 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 24 | neck=None, 25 | head=dict( 26 | type='MultiLabelLinearClsHead', 27 | num_classes=19, 28 | in_channels=1024, 29 | )) 30 | data = dict( 31 | samples_per_gpu=4, # use 2 gpus, total 128 32 | train=dict( 33 | ann_file= 34 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train_exp{exp_num}.txt' 35 | ), 36 | val=dict( 37 | ann_file= 38 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val_exp{exp_num}.txt'), 39 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 40 | 41 | optimizer = dict(lr=lr) 42 | 43 | log_config = dict( 44 | interval=10, hooks=[ 45 | dict(type='TextLoggerHook'), 46 | ]) 47 | 48 | load_from = 'work_dirs/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 49 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 50 | 51 | runner = dict(type='EpochBasedRunner', max_epochs=20) 52 | 53 | # yapf:disable 54 | log_config = dict( 55 | interval=10, 56 | hooks=[ 57 | dict(type='TextLoggerHook'), 58 | ]) 59 | -------------------------------------------------------------------------------- /configs/swin-b_vpt/in21k-swin-b_vpt5_bs4_lr5e-2_10-shot_endo_adamw.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/endoscopy.py', 3 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 4 | '../_base_/default_runtime.py', 5 | '../_base_/custom_imports.py', 6 | ] 7 | 8 | lr = 5e-2 9 | n = 1 10 | vpl = 5 11 | dataset = 'endo' 12 | exp_num = 1 13 | nshot = 10 14 | run_name = f'in21k-swin-b_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 15 | 16 | model = dict( 17 | type='ImageClassifier', 18 | backbone=dict( 19 | type='PromptedSwinTransformer', 20 | prompt_length=vpl, 21 | arch='base', 22 | img_size=384, 23 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 24 | neck=None, 25 | head=dict( 26 | type='MultiLabelLinearClsHead', 27 | num_classes=4, 28 | in_channels=1024, 29 | )) 30 | data = dict( 31 | samples_per_gpu=4, # use 2 gpus, total 128 32 | train=dict( 33 | ann_file= 34 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train_exp{exp_num}.txt' 35 | ), 36 | val=dict( 37 | ann_file= 38 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val_exp{exp_num}.txt'), 39 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 40 | 41 | optimizer = dict(lr=lr) 42 | 43 | log_config = dict( 44 | interval=10, hooks=[ 45 | dict(type='TextLoggerHook'), 46 | ]) 47 | 48 | load_from = 'work_dirs/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 49 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 50 | 51 | runner = dict(type='EpochBasedRunner', max_epochs=20) 52 | 53 | # yapf:disable 54 | log_config = dict( 55 | interval=10, 56 | hooks=[ 57 | dict(type='TextLoggerHook'), 58 | ]) 59 | -------------------------------------------------------------------------------- /configs/_base_/datasets/chest.py: -------------------------------------------------------------------------------- 1 | # dataset settings 2 | dataset_type = 'Chest19' 3 | img_norm_cfg = dict( 4 | mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) 5 | train_pipeline = [ 6 | dict(type='LoadImageFromFile'), 7 | dict( 8 | type='RandomResizedCrop', 9 | size=384, 10 | backend='pillow', 11 | interpolation='bicubic'), 12 | dict(type='RandomFlip', flip_prob=0.5, direction='horizontal'), 13 | dict(type='Normalize', **img_norm_cfg), 14 | dict(type='ImageToTensor', keys=['img']), 15 | dict(type='ToTensor', keys=['gt_label']), 16 | dict(type='Collect', keys=['img', 'gt_label']) 17 | ] 18 | test_pipeline = [ 19 | dict(type='LoadImageFromFile'), 20 | dict(type='Resize', size=384, backend='pillow', interpolation='bicubic'), 21 | dict(type='Normalize', **img_norm_cfg), 22 | dict(type='ImageToTensor', keys=['img']), 23 | dict(type='Collect', keys=['img']) 24 | ] 25 | data = dict( 26 | samples_per_gpu=4, 27 | workers_per_gpu=4, 28 | train=dict( 29 | type=dataset_type, 30 | data_prefix='data/MedFMC/chest/images', 31 | ann_file='data/MedFMC/chest/train_20.txt', 32 | pipeline=train_pipeline), 33 | val=dict( 34 | type=dataset_type, 35 | data_prefix='data/MedFMC/chest/images', 36 | ann_file='data/MedFMC/chest/val_20.txt', 37 | pipeline=test_pipeline), 38 | test=dict( 39 | # replace `data/val` with `data/test` for standard test 40 | type=dataset_type, 41 | data_prefix='data/MedFMC/chest/images', 42 | ann_file='data/MedFMC/chest/test_WithLabel.txt', 43 | pipeline=test_pipeline)) 44 | evaluation = dict(interval=1, metric='mAP', save_best='auto') 45 | -------------------------------------------------------------------------------- /configs/swin-b_vpt/in21k-swin-b_vpt5_bs4_lr5e-2_1-shot_colon_adamw.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 4 | '../_base_/default_runtime.py', 5 | '../_base_/custom_imports.py', 6 | ] 7 | 8 | lr = 5e-2 9 | n = 1 10 | vpl = 5 11 | dataset = 'colon' 12 | exp_num = 1 13 | nshot = 1 14 | run_name = f'in21k-swin-b_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 15 | 16 | model = dict( 17 | type='ImageClassifier', 18 | backbone=dict( 19 | type='PromptedSwinTransformer', 20 | prompt_length=vpl, 21 | arch='base', 22 | img_size=384, 23 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 24 | neck=None, 25 | head=dict( 26 | type='LinearClsHead', 27 | num_classes=2, 28 | in_channels=1024, 29 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 30 | )) 31 | data = dict( 32 | samples_per_gpu=4, # use 2 gpus, total 128 33 | train=dict( 34 | ann_file= 35 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train_exp{exp_num}.txt' 36 | ), 37 | val=dict( 38 | ann_file= 39 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val_exp{exp_num}.txt'), 40 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 41 | 42 | optimizer = dict(lr=lr) 43 | 44 | log_config = dict( 45 | interval=10, hooks=[ 46 | dict(type='TextLoggerHook'), 47 | ]) 48 | 49 | load_from = 'work_dirs/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 50 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 51 | 52 | runner = dict(type='EpochBasedRunner', max_epochs=20) 53 | 54 | # yapf:disable 55 | log_config = dict( 56 | interval=10, 57 | hooks=[ 58 | dict(type='TextLoggerHook'), 59 | ]) 60 | -------------------------------------------------------------------------------- /configs/swin-b_vpt/in21k-swin-b_vpt5_bs4_lr5e-2_5-shot_colon_adamw.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 4 | '../_base_/default_runtime.py', 5 | '../_base_/custom_imports.py', 6 | ] 7 | 8 | lr = 5e-2 9 | n = 1 10 | vpl = 5 11 | dataset = 'colon' 12 | exp_num = 1 13 | nshot = 5 14 | run_name = f'in21k-swin-b_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 15 | 16 | model = dict( 17 | type='ImageClassifier', 18 | backbone=dict( 19 | type='PromptedSwinTransformer', 20 | prompt_length=vpl, 21 | arch='base', 22 | img_size=384, 23 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 24 | neck=None, 25 | head=dict( 26 | type='LinearClsHead', 27 | num_classes=2, 28 | in_channels=1024, 29 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 30 | )) 31 | data = dict( 32 | samples_per_gpu=4, # use 2 gpus, total 128 33 | train=dict( 34 | ann_file= 35 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train_exp{exp_num}.txt' 36 | ), 37 | val=dict( 38 | ann_file= 39 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val_exp{exp_num}.txt'), 40 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 41 | 42 | optimizer = dict(lr=lr) 43 | 44 | log_config = dict( 45 | interval=10, hooks=[ 46 | dict(type='TextLoggerHook'), 47 | ]) 48 | 49 | load_from = 'work_dirs/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 50 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 51 | 52 | runner = dict(type='EpochBasedRunner', max_epochs=20) 53 | 54 | # yapf:disable 55 | log_config = dict( 56 | interval=10, 57 | hooks=[ 58 | dict(type='TextLoggerHook'), 59 | ]) 60 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/PYCQA/flake8.git 3 | rev: 5.0.4 4 | hooks: 5 | - id: flake8 6 | - repo: https://github.com/zhouzaida/isort 7 | rev: 5.12.1 8 | hooks: 9 | - id: isort 10 | - repo: https://github.com/pre-commit/mirrors-yapf 11 | rev: v0.32.0 12 | hooks: 13 | - id: yapf 14 | - repo: https://github.com/pre-commit/pre-commit-hooks 15 | rev: v4.3.0 16 | hooks: 17 | - id: trailing-whitespace 18 | - id: check-yaml 19 | - id: end-of-file-fixer 20 | - id: requirements-txt-fixer 21 | - id: double-quote-string-fixer 22 | - id: check-merge-conflict 23 | - id: fix-encoding-pragma 24 | args: ["--remove"] 25 | - id: mixed-line-ending 26 | args: ["--fix=lf"] 27 | - repo: https://github.com/executablebooks/mdformat 28 | rev: 0.7.9 29 | hooks: 30 | - id: mdformat 31 | args: ["--number"] 32 | additional_dependencies: 33 | - mdformat-openmmlab 34 | - mdformat_frontmatter 35 | - linkify-it-py 36 | # - repo: https://github.com/codespell-project/codespell 37 | # rev: v2.2.1 38 | # hooks: 39 | # - id: codespell 40 | - repo: https://github.com/myint/docformatter 41 | rev: v1.3.1 42 | hooks: 43 | - id: docformatter 44 | args: ["--in-place", "--wrap-descriptions", "79"] 45 | # - repo: local 46 | # hooks: 47 | # - id: update-model-index 48 | # name: update-model-index 49 | # description: Collect model information and update model-index.yml 50 | # entry: .dev/md2yml.py 51 | # additional_dependencies: [mmcv, lxml, opencv-python] 52 | # language: python 53 | # files: ^configs/.*\.md$ 54 | # require_serial: true 55 | -------------------------------------------------------------------------------- /configs/swin-b_vpt/in21k-swin-b_vpt5_bs4_lr5e-2_10-shot_colon_adamw.py: -------------------------------------------------------------------------------- 1 | _base_ = [ 2 | '../_base_/datasets/colon.py', 3 | '../_base_/schedules/imagenet_bs1024_adamw_swin.py', 4 | '../_base_/default_runtime.py', 5 | '../_base_/custom_imports.py', 6 | ] 7 | 8 | lr = 5e-2 9 | n = 1 10 | vpl = 5 11 | dataset = 'colon' 12 | exp_num = 1 13 | nshot = 10 14 | run_name = f'in21k-swin-b_vpt-{vpl}_bs4_lr{lr}_{nshot}-shot_{dataset}' 15 | 16 | model = dict( 17 | type='ImageClassifier', 18 | backbone=dict( 19 | type='PromptedSwinTransformer', 20 | prompt_length=vpl, 21 | arch='base', 22 | img_size=384, 23 | stage_cfgs=dict(block_cfgs=dict(window_size=12))), 24 | neck=None, 25 | head=dict( 26 | type='LinearClsHead', 27 | num_classes=2, 28 | in_channels=1024, 29 | loss=dict(type='CrossEntropyLoss', loss_weight=1.0), 30 | )) 31 | data = dict( 32 | samples_per_gpu=4, # use 2 gpus, total 128 33 | train=dict( 34 | ann_file= 35 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_train_exp{exp_num}.txt' 36 | ), 37 | val=dict( 38 | ann_file= 39 | f'data/MedFMC/{dataset}/{dataset}_{nshot}-shot_val_exp{exp_num}.txt'), 40 | test=dict(ann_file=f'data/MedFMC/{dataset}/test_WithLabel.txt')) 41 | 42 | optimizer = dict(lr=lr) 43 | 44 | log_config = dict( 45 | interval=10, hooks=[ 46 | dict(type='TextLoggerHook'), 47 | ]) 48 | 49 | load_from = 'work_dirs/swin_base_patch4_window12_384_22kto1k-d59b0d1d.pth' 50 | work_dir = f'work_dirs/exp{exp_num}/{run_name}' 51 | 52 | runner = dict(type='EpochBasedRunner', max_epochs=20) 53 | 54 | # yapf:disable 55 | log_config = dict( 56 | interval=10, 57 | hooks=[ 58 | dict(type='TextLoggerHook'), 59 | ]) 60 | -------------------------------------------------------------------------------- /configs/_base_/datasets/colon.py: -------------------------------------------------------------------------------- 1 | # dataset settings 2 | dataset_type = 'Colon' 3 | img_norm_cfg = dict( 4 | mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) 5 | train_pipeline = [ 6 | dict(type='LoadImageFromFile'), 7 | dict( 8 | type='RandomResizedCrop', 9 | size=384, 10 | backend='pillow', 11 | interpolation='bicubic'), 12 | dict(type='RandomFlip', flip_prob=0.5, direction='horizontal'), 13 | dict(type='Normalize', **img_norm_cfg), 14 | dict(type='ImageToTensor', keys=['img']), 15 | dict(type='ToTensor', keys=['gt_label']), 16 | dict(type='Collect', keys=['img', 'gt_label']) 17 | ] 18 | test_pipeline = [ 19 | dict(type='LoadImageFromFile'), 20 | dict(type='Resize', size=384, backend='pillow', interpolation='bicubic'), 21 | dict(type='Normalize', **img_norm_cfg), 22 | dict(type='ImageToTensor', keys=['img']), 23 | dict(type='Collect', keys=['img']) 24 | ] 25 | data = dict( 26 | samples_per_gpu=4, 27 | workers_per_gpu=4, 28 | train=dict( 29 | type=dataset_type, 30 | data_prefix='data/MedFMC/colon/images', 31 | ann_file='data/MedFMC/colon/train_20.txt', 32 | pipeline=train_pipeline), 33 | val=dict( 34 | type=dataset_type, 35 | data_prefix='data/MedFMC/colon/images', 36 | ann_file='data/MedFMC/colon/val_20.txt', 37 | pipeline=test_pipeline), 38 | test=dict( 39 | # replace `data/val` with `data/test` for standard test 40 | type=dataset_type, 41 | data_prefix='data/MedFMC/colon/images', 42 | ann_file='data/MedFMC/colon/test_WithLabel.txt', 43 | pipeline=test_pipeline)) 44 | evaluation = dict( 45 | interval=1, 46 | metric='accuracy', 47 | metric_options={'topk': 1}, 48 | save_best='auto') 49 | -------------------------------------------------------------------------------- /configs/_base_/datasets/endoscopy.py: -------------------------------------------------------------------------------- 1 | # dataset settings 2 | dataset_type = 'Endoscopy' 3 | img_norm_cfg = dict( 4 | mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) 5 | train_pipeline = [ 6 | dict(type='LoadImageFromFile'), 7 | dict( 8 | type='RandomResizedCrop', 9 | size=384, 10 | backend='pillow', 11 | interpolation='bicubic'), 12 | dict(type='RandomFlip', flip_prob=0.5, direction='horizontal'), 13 | dict(type='Normalize', **img_norm_cfg), 14 | dict(type='ImageToTensor', keys=['img']), 15 | dict(type='ToTensor', keys=['gt_label']), 16 | dict(type='Collect', keys=['img', 'gt_label']) 17 | ] 18 | test_pipeline = [ 19 | dict(type='LoadImageFromFile'), 20 | dict(type='Resize', size=384, backend='pillow', interpolation='bicubic'), 21 | dict(type='Normalize', **img_norm_cfg), 22 | dict(type='ImageToTensor', keys=['img']), 23 | dict(type='Collect', keys=['img']) 24 | ] 25 | data = dict( 26 | samples_per_gpu=4, 27 | workers_per_gpu=4, 28 | train=dict( 29 | type=dataset_type, 30 | data_prefix='data/MedFMC/endo/images', 31 | ann_file='data/MedFMC/endo/train_20.txt', 32 | pipeline=train_pipeline), 33 | val=dict( 34 | type=dataset_type, 35 | data_prefix='data/MedFMC/endo/images', 36 | ann_file='data/MedFMC/endo/val_20.txt', 37 | pipeline=test_pipeline), 38 | test=dict( 39 | # replace `data/val` with `data/test` for standard test 40 | type=dataset_type, 41 | data_prefix='data/MedFMC/endo/images', 42 | ann_file='data/MedFMC/endo/test_WithLabel.txt', 43 | pipeline=test_pipeline)) 44 | # evaluation = dict(interval=1, metric='mAP', save_best='auto') 45 | evaluation = dict(interval=1, metric='AUC_multilabel', save_best='auto') 46 | -------------------------------------------------------------------------------- /data_backup/MedFMC/endo/endo_1-shot_train_exp1.txt: -------------------------------------------------------------------------------- 1 | 13333_2021.12_0007_57297497.png 1 0 0 0 2 | 13333_2021.12_0007_57297486.png 1 0 0 1 3 | 13333_2021.12_0007_57297492.png 1 0 0 0 4 | 13333_2021.12_0007_57297415.png 1 0 0 0 5 | 13333_2021.12_0007_57297468.png 1 1 1 1 6 | 13333_2021.12_0007_57297457.png 1 1 0 1 7 | 13333_2021.12_0007_57297453.png 1 0 0 0 8 | 13333_2021.12_0007_57297464.png 1 1 1 0 9 | 13333_2021.12_0007_57297413.png 1 0 0 0 10 | 13333_2021.12_0007_57297477.png 1 0 0 1 11 | 13333_2021.12_0007_57297426.png 1 0 0 0 12 | 13333_2021.12_0007_57297483.png 1 0 0 1 13 | 13333_2021.12_0007_57297412.png 1 0 0 0 14 | 13333_2021.12_0007_57297444.png 1 0 0 0 15 | 13333_2021.12_0007_57297439.png 1 1 0 0 16 | 13333_2021.12_0007_57297526.png 1 1 1 0 17 | 13333_2021.12_0007_57297435.png 1 1 0 0 18 | 13333_2021.12_0007_57297417.png 1 0 0 0 19 | 13333_2021.12_0007_57297428.png 1 0 0 0 20 | 13333_2021.12_0007_57297448.png 1 0 0 1 21 | 13333_2021.12_0007_57297459.png 1 0 0 1 22 | 13333_2021.12_0007_57297470.png 1 1 0 1 23 | 13333_2021.12_0007_57297510.png 1 0 0 0 24 | 13333_2021.12_0007_57297488.png 1 1 0 0 25 | 13333_2021.12_0007_57297433.png 1 1 1 0 26 | 13333_2021.12_0007_57297512.png 1 0 0 0 27 | 13333_2021.12_0007_57297461.png 1 0 0 1 28 | 13333_2021.12_0007_57297450.png 1 0 0 1 29 | 13333_2021.12_0007_57297424.png 1 0 0 0 30 | 13333_2021.12_0007_57297490.png 1 0 0 1 31 | 13333_2021.12_0007_57297481.png 1 0 0 1 32 | 13333_2021.12_0007_57297430.png 1 1 1 0 33 | 13333_2021.12_0007_57297479.png 1 0 0 1 34 | 13333_2021.12_0007_57297419.png 1 0 0 0 35 | 13333_2021.12_0007_57297422.png 1 0 0 0 36 | 13333_2021.12_0007_57297441.png 1 0 0 0 37 | 13333_2021.12_0007_57297455.png 1 0 0 1 38 | 13333_2021.12_0007_57297437.png 1 1 0 0 39 | 13333_2021.07_0000_50128464.png 1 1 1 0 40 | 13333_2021.07_0000_50128467.png 1 1 1 0 41 | 13333_2021.07_0000_50128451.png 1 1 1 0 42 | 13333_2021.07_0000_50128455.png 1 1 1 0 43 | 13333_2021.06_0000_48587044.png 0 0 1 0 44 | 13333_2021.06_0000_48586752.png 0 0 1 0 45 | 13333_2021.06_0000_48586737.png 0 0 1 0 46 | 13333_2021.12_0009_56515487.png 0 0 0 1 47 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | *.egg-info/ 24 | .installed.cfg 25 | *.egg 26 | MANIFEST 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | .pytest_cache/ 49 | 50 | # Translations 51 | *.mo 52 | *.pot 53 | 54 | # Django stuff: 55 | *.log 56 | local_settings.py 57 | db.sqlite3 58 | 59 | # Flask stuff: 60 | instance/ 61 | .webassets-cache 62 | 63 | # Scrapy stuff: 64 | .scrapy 65 | 66 | # Sphinx documentation 67 | docs/_build/ 68 | 69 | # PyBuilder 70 | target/ 71 | 72 | # Jupyter Notebook 73 | .ipynb_checkpoints 74 | 75 | # pyenv 76 | .python-version 77 | 78 | # celery beat schedule file 79 | celerybeat-schedule 80 | 81 | # SageMath parsed files 82 | *.sage.py 83 | 84 | # Environments 85 | .env 86 | .venv 87 | env/ 88 | venv/ 89 | ENV/ 90 | env.bak/ 91 | venv.bak/ 92 | 93 | # Spyder project settings 94 | .spyderproject 95 | .spyproject 96 | 97 | # Rope project settings 98 | .ropeproject 99 | 100 | # mkdocs documentation 101 | /site 102 | 103 | # mypy 104 | .mypy_cache/ 105 | 106 | data/ 107 | data 108 | .vscode 109 | .idea 110 | .DS_Store 111 | 112 | # custom 113 | *.pkl 114 | *.pkl.json 115 | *.log.json 116 | work_dir/ 117 | 118 | # Pytorch 119 | *.pth 120 | *.py~ 121 | *.sh~ 122 | 123 | debug/* 124 | vis/ 125 | analysis/* 126 | pretrain/* 127 | *.dist_test 128 | -------------------------------------------------------------------------------- /data_backup/MedFMC/colon/colon_1-shot_train_exp1.txt: -------------------------------------------------------------------------------- 1 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0008.png 0 2 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0002.png 0 3 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0005.png 0 4 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0011.png 0 5 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0001.png 0 6 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0010.png 0 7 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0004.png 0 8 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0009.png 0 9 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0007.png 0 10 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0003.png 0 11 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0012.png 0 12 | 1903326001_2019-06-11 12_07_06-lv1-3173-23728-2837-3546p0006.png 0 13 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0018.png 1 14 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0002.png 1 15 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0015.png 1 16 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0017.png 1 17 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0010.png 1 18 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0006.png 1 19 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0003.png 1 20 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0011.png 1 21 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0001.png 1 22 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0005.png 1 23 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0014.png 1 24 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0008.png 1 25 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0012.png 1 26 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0007.png 1 27 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0013.png 1 28 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0009.png 1 29 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0004.png 1 30 | D201801775B_2019-05-14 16_11_32-lv1-32649-27988-6434-3613p0016.png 1 31 | -------------------------------------------------------------------------------- /tools/test_prediction.py: -------------------------------------------------------------------------------- 1 | import mmcv 2 | import numpy as np 3 | import os 4 | import torch 5 | from argparse import ArgumentParser 6 | from mmcls.apis import inference_model, init_model 7 | from mmcls.datasets.pipelines import Compose 8 | from mmcv.parallel import collate, scatter 9 | 10 | 11 | def inference_model(model, img): 12 | """Inference image(s) with the classifier. 13 | 14 | Args: 15 | model (nn.Module): The loaded classifier. 16 | img (str/ndarray): The image filename or loaded image. 17 | 18 | Returns: 19 | result (dict): The classification results that contains 20 | `class_name`, `pred_label` and `pred_score`. 21 | """ 22 | cfg = model.cfg 23 | device = next(model.parameters()).device # model device 24 | # build the data pipeline 25 | if isinstance(img, str): 26 | if cfg.data.test.pipeline[0]['type'] != 'LoadImageFromFile': 27 | cfg.data.test.pipeline.insert(0, dict(type='LoadImageFromFile')) 28 | data = dict(img_info=dict(filename=img), img_prefix=None) 29 | else: 30 | if cfg.data.test.pipeline[0]['type'] == 'LoadImageFromFile': 31 | cfg.data.test.pipeline.pop(0) 32 | data = dict(img=img) 33 | test_pipeline = Compose(cfg.data.test.pipeline) 34 | data = test_pipeline(data) 35 | data = collate([data], samples_per_gpu=1) 36 | if next(model.parameters()).is_cuda: 37 | # scatter to specified GPU 38 | data = scatter(data, [device])[0] 39 | 40 | # forward the model 41 | with torch.no_grad(): 42 | scores = model(return_loss=False, **data) 43 | return scores 44 | 45 | 46 | def main(): 47 | parser = ArgumentParser() 48 | parser.add_argument('img_file', help='Names of test image files') 49 | parser.add_argument('img_path', help='Path of test image files') 50 | parser.add_argument('config', help='Config file') 51 | parser.add_argument('checkpoint', help='Checkpoint file') 52 | parser.add_argument( 53 | '--device', default='cuda:0', help='Device used for inference') 54 | parser.add_argument( 55 | '--output-prediction', 56 | help='where to save prediction in csv file', 57 | default=False) 58 | args = parser.parse_args() 59 | 60 | # build the model from a config file and a checkpoint file 61 | model = init_model(args.config, args.checkpoint, device=args.device) 62 | # test a bundle of images 63 | if args.output_prediction: 64 | with open(args.output_prediction, 'w') as f_out: 65 | for line in open(args.img_file, 'r'): 66 | image_name = line.split('\n')[0] 67 | file = os.path.join(args.img_path, image_name) 68 | result = inference_model(model, file)[0] 69 | f_out.write(image_name) 70 | for j in range(len(result)): 71 | f_out.write(',' + str(np.around(result[j], 8))) 72 | f_out.write('\n') 73 | 74 | 75 | if __name__ == '__main__': 76 | main() 77 | -------------------------------------------------------------------------------- /data_backup/MedFMC/endo/endo_1-shot_train_exp3.txt: -------------------------------------------------------------------------------- 1 | 13333_2021.01_0005_41459203.png 1 0 0 0 2 | 13333_2021.04_0003_44800992.png 0 1 0 0 3 | 13333_2021.04_0003_44800995.png 0 1 0 0 4 | 13333_2021.04_0003_44800997.png 0 1 0 0 5 | 13333_2021.04_0003_44800999.png 0 1 0 0 6 | 13333_2021.12_0007_57297515.png 0 0 1 0 7 | 13333_2021.12_0007_57297468.png 1 1 1 1 8 | 13333_2021.12_0007_57297464.png 1 1 1 0 9 | 13333_2021.12_0007_57297466.png 0 1 1 1 10 | 13333_2021.12_0007_57297475.png 0 1 1 1 11 | 13333_2021.12_0007_57297526.png 1 1 1 0 12 | 13333_2021.12_0007_57297433.png 1 1 1 0 13 | 13333_2021.12_0007_57297430.png 1 1 1 0 14 | 13333_2021.12_0007_57297524.png 0 0 1 0 15 | 13333_2021.09_0001_51688951.png 1 0 0 1 16 | 13333_2021.09_0001_51688686.png 0 0 1 1 17 | 13333_2021.09_0001_51688679.png 0 0 1 1 18 | 13333_2021.09_0001_51688680.png 0 0 0 1 19 | 13333_2021.09_0001_51688677.png 0 0 1 1 20 | 13333_2021.09_0001_51688953.png 1 0 0 1 21 | 13333_2021.09_0001_51689179.png 1 0 0 1 22 | 13333_2021.09_0001_51688957.png 1 0 0 1 23 | 13333_2021.09_0001_51688927.png 0 0 0 1 24 | 13333_2021.09_0001_51689688.png 1 0 0 1 25 | 13333_2021.09_0001_51689649.png 1 0 0 1 26 | 13333_2021.09_0001_51688919.png 0 0 0 1 27 | 13333_2021.09_0001_51688961.png 0 0 0 1 28 | 13333_2021.09_0001_51688676.png 0 0 1 1 29 | 13333_2021.09_0001_51688920.png 0 0 0 1 30 | 13333_2021.09_0001_51688913.png 0 0 0 1 31 | 13333_2021.09_0001_51688916.png 0 0 0 1 32 | 13333_2021.09_0001_51689673.png 1 0 0 1 33 | 13333_2021.09_0001_51688684.png 0 0 1 1 34 | 13333_2021.09_0001_51688929.png 0 0 0 1 35 | 13333_2021.09_0001_51688673.png 0 0 0 1 36 | 13333_2021.09_0001_51688917.png 0 0 0 1 37 | 13333_2021.09_0001_51688685.png 0 0 0 1 38 | 13333_2021.09_0001_51689646.png 1 0 0 1 39 | 13333_2021.09_0001_51688926.png 0 0 0 1 40 | 13333_2021.09_0001_51688921.png 0 0 0 1 41 | 13333_2021.09_0001_51688678.png 0 0 1 1 42 | 13333_2021.09_0001_51688933.png 1 0 0 1 43 | 13333_2021.09_0001_51688934.png 0 0 0 1 44 | 13333_2021.09_0001_51688930.png 0 0 0 1 45 | 13333_2021.09_0001_51688928.png 0 0 0 1 46 | 13333_2021.09_0001_51688931.png 1 0 0 1 47 | 13333_2021.09_0001_51688936.png 1 0 0 1 48 | 13333_2021.09_0001_51688954.png 1 0 0 1 49 | 13333_2021.09_0001_51688952.png 1 0 0 1 50 | 13333_2021.09_0001_51688937.png 1 0 0 1 51 | 13333_2021.09_0001_51688670.png 0 0 0 1 52 | 13333_2021.09_0001_51688932.png 1 0 0 1 53 | 13333_2021.09_0001_51688674.png 0 0 0 1 54 | 13333_2021.09_0001_51688918.png 0 0 0 1 55 | 13333_2021.09_0001_51688881.png 0 0 0 1 56 | 13333_2021.09_0001_51688935.png 1 0 0 1 57 | 13333_2021.09_0001_51688956.png 1 0 0 1 58 | 13333_2021.09_0001_51688958.png 1 0 0 1 59 | 13333_2021.09_0001_51688687.png 0 0 1 1 60 | 13333_2021.09_0001_51688682.png 0 0 0 1 61 | 13333_2021.09_0001_51688949.png 1 0 0 1 62 | 13333_2021.09_0001_51688950.png 1 0 0 1 63 | 13333_2021.09_0001_51688959.png 1 0 0 1 64 | 13333_2021.09_0001_51689658.png 1 0 0 1 65 | 13333_2021.09_0001_51688672.png 0 0 0 1 66 | 13333_2021.09_0001_51688688.png 0 0 1 1 67 | 13333_2021.09_0001_51688681.png 0 0 1 1 68 | 13333_2021.09_0001_51688948.png 1 0 0 1 69 | 13333_2021.09_0001_51688675.png 0 0 1 1 70 | 13333_2021.09_0001_51688923.png 0 0 0 1 71 | 13333_2021.09_0001_51688924.png 0 0 0 1 72 | 13333_2021.09_0001_51689912.png 0 0 0 1 73 | 13333_2021.09_0001_51688925.png 0 0 0 1 74 | 13333_2021.09_0001_51688955.png 1 0 0 1 75 | 13333_2021.09_0001_51688669.png 0 0 0 1 76 | 13333_2021.09_0001_51688683.png 0 0 1 1 77 | -------------------------------------------------------------------------------- /medfmc/models/prompt_vit.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | from mmcls.models import BACKBONES 4 | from mmcls.models.backbones import VisionTransformer 5 | from mmcls.models.utils import resize_pos_embed 6 | from typing import List 7 | 8 | 9 | @BACKBONES.register_module() 10 | class PromptedVisionTransformer(VisionTransformer): 11 | 12 | def __init__(self, 13 | prompt_length: int = 1, 14 | prompt_layers: List[int] = None, 15 | prompt_pos: str = 'prepend', 16 | prompt_init: str = 'normal', 17 | *args, 18 | **kwargs): 19 | super().__init__(*args, **kwargs) 20 | for param in self.parameters(): 21 | param.requires_grad = False 22 | 23 | self.prompt_layers = [0] if prompt_layers is None else prompt_layers 24 | prompt = torch.empty( 25 | len(self.prompt_layers), prompt_length, self.embed_dims) 26 | if prompt_init == 'uniform': 27 | nn.init.uniform_(prompt, -0.08, 0.08) 28 | elif prompt_init == 'zero': 29 | nn.init.zeros_(prompt) 30 | elif prompt_init == 'kaiming': 31 | nn.init.kaiming_normal_(prompt) 32 | elif prompt_init == 'token': 33 | nn.init.zeros_(prompt) 34 | self.prompt_initialized = False 35 | else: 36 | nn.init.normal_(prompt, std=0.02) 37 | self.prompt = nn.Parameter(prompt, requires_grad=True) 38 | self.prompt_length = prompt_length 39 | self.prompt_pos = prompt_pos 40 | 41 | def forward(self, x): 42 | """Following mmcls implementation.""" 43 | B = x.shape[0] 44 | x, patch_resolution = self.patch_embed(x) 45 | 46 | # stole cls_tokens impl from Phil Wang, thanks 47 | cls_tokens = self.cls_token.expand(B, -1, -1) 48 | x = torch.cat((cls_tokens, x), dim=1) 49 | x = x + resize_pos_embed( 50 | self.pos_embed, 51 | self.patch_resolution, 52 | patch_resolution, 53 | mode=self.interpolate_mode, 54 | num_extra_tokens=self.num_extra_tokens) 55 | x = self.drop_after_pos(x) 56 | 57 | # Add prompt 58 | if hasattr(self, 'prompt_initialized') and not self.prompt_initialized: 59 | with torch.no_grad(): 60 | self.prompt.data += x.mean([0, 1]).detach().clone() 61 | self.prompt_initialized = True 62 | prompt = self.prompt.unsqueeze(1).expand(-1, x.shape[0], -1, -1) 63 | # prompt: [layer, batch, length, dim] 64 | if self.prompt_pos == 'prepend': 65 | x = torch.cat([x[:, :1, :], prompt[0, :, :, :], x[:, 1:, :]], 66 | dim=1) 67 | 68 | if not self.with_cls_token: 69 | # Remove class token for transformer encoder input 70 | x = x[:, 1:] 71 | 72 | outs = [] 73 | for i, layer in enumerate(self.layers): 74 | if i in self.prompt_layers: 75 | if self.prompt_pos == 'prepend': 76 | x = torch.cat([ 77 | x[:, :1, :], prompt[i, :, :, :], 78 | x[:, 1 + self.prompt_length:, :] 79 | ], 80 | dim=1) 81 | x = layer(x) 82 | 83 | if i == len(self.layers) - 1 and self.final_norm: 84 | x = self.norm1(x) 85 | 86 | if i in self.out_indices: 87 | outs.append(x[:, 0]) 88 | 89 | return tuple(outs) 90 | -------------------------------------------------------------------------------- /data_backup/MedFMC/colon/colon_1-shot_train_exp5.txt: -------------------------------------------------------------------------------- 1 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0018.png 0 2 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0004.png 0 3 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0019.png 0 4 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0011.png 0 5 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0010.png 0 6 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0009.png 0 7 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0005.png 0 8 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0001.png 0 9 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0012.png 0 10 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0016.png 0 11 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0021.png 0 12 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0022.png 0 13 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0008.png 0 14 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0015.png 0 15 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0017.png 0 16 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0006.png 0 17 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0002.png 0 18 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0020.png 0 19 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0003.png 0 20 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0014.png 0 21 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0007.png 0 22 | 2019-10732-1-1-1_2019-05-28 17_14_07-lv1-51181-12875-6891-4298p0013.png 0 23 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0005.png 1 24 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0004.png 1 25 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0001.png 1 26 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0011.png 1 27 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0018.png 1 28 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0010.png 1 29 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0002.png 1 30 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0016.png 1 31 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0021.png 1 32 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0023.png 1 33 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0022.png 1 34 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0014.png 1 35 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0003.png 1 36 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0007.png 1 37 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0020.png 1 38 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0025.png 1 39 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0024.png 1 40 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0008.png 1 41 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0015.png 1 42 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0019.png 1 43 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0006.png 1 44 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0012.png 1 45 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0013.png 1 46 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0009.png 1 47 | D20180102901_2019-05-21 09_38_51-lv1-35281-21862-7783-5230p0017.png 1 48 | -------------------------------------------------------------------------------- /data_backup/MedFMC/colon/colon_1-shot_train_exp3.txt: -------------------------------------------------------------------------------- 1 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0007.png 0 2 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0016.png 0 3 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0012.png 0 4 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0023.png 0 5 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0013.png 0 6 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0022.png 0 7 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0019.png 0 8 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0024.png 0 9 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0015.png 0 10 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0018.png 0 11 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0008.png 0 12 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0003.png 0 13 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0001.png 0 14 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0005.png 0 15 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0020.png 0 16 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0006.png 0 17 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0017.png 0 18 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0004.png 0 19 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0011.png 0 20 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0026.png 0 21 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0002.png 0 22 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0025.png 0 23 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0010.png 0 24 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0021.png 0 25 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0014.png 0 26 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0027.png 0 27 | 2019-07501-1-1-1_2019-05-29 08_22_25-lv1-9661-18329-4972-6041p0009.png 0 28 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0011.png 1 29 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0008.png 1 30 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0007.png 1 31 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0020.png 1 32 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0001.png 1 33 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0015.png 1 34 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0006.png 1 35 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0009.png 1 36 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0021.png 1 37 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0004.png 1 38 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0014.png 1 39 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0010.png 1 40 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0012.png 1 41 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0019.png 1 42 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0016.png 1 43 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0005.png 1 44 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0018.png 1 45 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0017.png 1 46 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0002.png 1 47 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0013.png 1 48 | D20170584502_2019-05-14 12_43_57-lv1-2062-19196-6656-6404p0003.png 1 49 | -------------------------------------------------------------------------------- /data_backup/MedFMC/colon/colon_1-shot_train_exp2.txt: -------------------------------------------------------------------------------- 1 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0036.png 0 2 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0039.png 0 3 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0012.png 0 4 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0016.png 0 5 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0004.png 0 6 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0037.png 0 7 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0001.png 0 8 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0030.png 0 9 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0023.png 0 10 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0009.png 0 11 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0024.png 0 12 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0034.png 0 13 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0013.png 0 14 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0008.png 0 15 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0003.png 0 16 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0017.png 0 17 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0040.png 0 18 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0018.png 0 19 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0035.png 0 20 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0006.png 0 21 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0011.png 0 22 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0007.png 0 23 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0027.png 0 24 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0033.png 0 25 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0041.png 0 26 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0028.png 0 27 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0015.png 0 28 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0032.png 0 29 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0021.png 0 30 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0010.png 0 31 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0031.png 0 32 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0005.png 0 33 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0026.png 0 34 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0002.png 0 35 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0019.png 0 36 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0025.png 0 37 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0014.png 0 38 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0020.png 0 39 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0038.png 0 40 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0029.png 0 41 | 2019-08976-1-1-1_2019-05-28 23_07_27-lv1-54636-8351-5285-8025p0022.png 0 42 | 2019_03721_1-1_2019-02-20 19_49_57-lv1-15430-12816-2912-5396p0002.png 1 43 | 2019_03721_1-1_2019-02-20 19_49_57-lv1-15430-12816-2912-5396p0004.png 1 44 | 2019_03721_1-1_2019-02-20 19_49_57-lv1-15430-12816-2912-5396p0005.png 1 45 | 2019_03721_1-1_2019-02-20 19_49_57-lv1-15430-12816-2912-5396p0001.png 1 46 | 2019_03721_1-1_2019-02-20 19_49_57-lv1-15430-12816-2912-5396p0009.png 1 47 | 2019_03721_1-1_2019-02-20 19_49_57-lv1-15430-12816-2912-5396p0006.png 1 48 | 2019_03721_1-1_2019-02-20 19_49_57-lv1-15430-12816-2912-5396p0003.png 1 49 | 2019_03721_1-1_2019-02-20 19_49_57-lv1-15430-12816-2912-5396p0008.png 1 50 | 2019_03721_1-1_2019-02-20 19_49_57-lv1-15430-12816-2912-5396p0007.png 1 51 | -------------------------------------------------------------------------------- /medfmc/core/evaluation/eval_metrics.py: -------------------------------------------------------------------------------- 1 | import math 2 | import numpy as np 3 | from sklearn import metrics 4 | 5 | 6 | def compute_auc(cls_scores, cls_labels): 7 | cls_aucs = [] 8 | for i in range(cls_scores.shape[1]): 9 | scores_per_class = cls_scores[:, i] 10 | labels_per_class = cls_labels[:, i] 11 | try: 12 | auc_per_class = metrics.roc_auc_score(labels_per_class, 13 | scores_per_class) 14 | # print('class {} auc = {:.2f}'.format(i + 1, auc_per_class * 100)) 15 | except ValueError: 16 | pass 17 | cls_aucs.append(auc_per_class * 100) 18 | 19 | return cls_aucs 20 | 21 | 22 | def cal_metrics_multilabel(target, cosine_scores): 23 | """Calculate mean AUC with given dataset information and cosine scores.""" 24 | 25 | sample_num = target.shape[0] 26 | cls_num = cosine_scores.shape[1] 27 | 28 | gt_labels = np.zeros((sample_num, cls_num)) 29 | for k in range(target.shape[0]): 30 | label = target[k] 31 | gt_labels[k, :] = label 32 | 33 | cls_scores = np.zeros((sample_num, cls_num)) 34 | for k in range(target.shape[0]): 35 | cos_score = cosine_scores[k] 36 | norm_scores = [1 / (1 + math.exp(-1 * v)) for v in cos_score] 37 | cls_scores[k, :] = np.array(norm_scores) 38 | 39 | cls_aucs = compute_auc(cls_scores, gt_labels) 40 | mean_auc = np.mean(cls_aucs) 41 | 42 | return mean_auc 43 | 44 | 45 | def cal_metrics_multiclass(target, cosine_scores): 46 | 47 | sample_num = target.shape[0] 48 | cls_num = cosine_scores.shape[1] 49 | 50 | gt_labels = np.zeros((sample_num, cls_num)) 51 | for k in range(target.shape[0]): 52 | label = target[k] 53 | one_hot_label = np.array([int(i == label) for i in range(cls_num)]) 54 | gt_labels[k, :] = one_hot_label 55 | 56 | cls_scores = np.zeros((sample_num, cls_num)) 57 | for k in range(target.shape[0]): 58 | cos_score = cosine_scores[k] 59 | 60 | norm_scores = [math.exp(v) for v in cos_score] 61 | norm_scores /= np.sum(norm_scores) 62 | 63 | cls_scores[k, :] = np.array(norm_scores) 64 | 65 | cls_aucs = compute_auc(cls_scores, gt_labels) 66 | mean_auc = np.mean(cls_aucs) 67 | 68 | return mean_auc 69 | 70 | 71 | def AUC_multiclass(pred, target): 72 | """Calculate the AUC with respect of classes. This metric is used for Colon 73 | Dataset. 74 | 75 | Args: 76 | pred (torch.Tensor | np.ndarray): The model prediction with shape 77 | (N, C), where C is the number of classes. 78 | target (torch.Tensor | np.ndarray): The target of each prediction with 79 | shape (N, C), where C is the number of classes. 1 stands for 80 | positive examples, 0 stands for negative examples and -1 stands for 81 | difficult examples. 82 | 83 | Returns: 84 | float: A single float as mAP value. 85 | """ 86 | auc = cal_metrics_multiclass(target, pred) 87 | 88 | return auc 89 | 90 | 91 | def AUC_multilabel(pred, target): 92 | """Calculate the AUC with respect of classes. This metric is used for 93 | Endoscopy and Chest Dataset. 94 | 95 | Args: 96 | pred (torch.Tensor | np.ndarray): The model prediction with shape 97 | (N, C), where C is the number of classes. 98 | target (torch.Tensor | np.ndarray): The target of each prediction with 99 | shape (N, C), where C is the number of classes. 1 stands for 100 | positive examples, 0 stands for negative examples and -1 stands for 101 | difficult examples. 102 | 103 | Returns: 104 | float: A single float as mAP value. 105 | """ 106 | # auc = cal_metrics_multilabel(target, pred) 107 | cls_aucs = compute_auc(pred, target) 108 | mean_auc = np.mean(cls_aucs) 109 | return mean_auc 110 | -------------------------------------------------------------------------------- /data_backup/MedFMC/endo/endo_5-shot_train_exp5.txt: -------------------------------------------------------------------------------- 1 | 13333_2021.11_0002_54971866.png 1 0 0 1 2 | 13333_2021.07_0003_49851443.png 1 0 0 0 3 | 13333_2021.07_0003_49851447.png 1 0 0 0 4 | 13333_2021.07_0003_49851445.png 1 0 0 0 5 | 13333_2021.07_0003_49851370.png 1 0 0 0 6 | 13333_2021.07_0003_49851474.png 1 0 0 0 7 | 13333_2021.07_0000_50128428.png 1 0 0 0 8 | 13333_2021.07_0000_50128435.png 1 0 0 0 9 | 13333_2021.07_0000_50128443.png 1 0 0 0 10 | 13333_2021.07_0000_50128426.png 1 0 0 0 11 | 13333_2021.07_0000_50128439.png 1 0 0 0 12 | 13333_2021.07_0000_50128442.png 1 0 0 0 13 | 13333_2021.07_0000_50128464.png 1 1 1 0 14 | 13333_2021.07_0000_50128467.png 1 1 1 0 15 | 13333_2021.07_0000_50128430.png 1 0 0 0 16 | 13333_2021.07_0000_50128446.png 1 0 0 0 17 | 13333_2021.07_0000_50128434.png 1 0 0 0 18 | 13333_2021.07_0000_50128451.png 1 1 1 0 19 | 13333_2021.07_0000_50128452.png 1 0 1 0 20 | 13333_2021.07_0000_50128455.png 1 1 1 0 21 | 13333_2021.07_0000_50128425.png 1 0 0 0 22 | 13333_2021.01_0000_41224617.png 1 0 1 0 23 | 13333_2021.01_0000_41223967.png 1 0 0 0 24 | 13333_2021.01_0000_41224708.png 1 0 1 0 25 | 13333_2021.10_0001_53183253.png 1 0 0 0 26 | 13333_2021.10_0001_53187988.png 1 1 0 0 27 | 13333_2021.10_0001_53188293.png 1 0 0 0 28 | 13333_2021.10_0001_53187749.png 1 0 0 0 29 | 13333_2021.10_0001_53188056.png 1 0 0 0 30 | 13333_2021.10_0001_53188130.png 1 0 0 0 31 | 13333_2021.10_0001_53187232.png 1 0 0 0 32 | 13333_2021.10_0001_53188094.png 1 0 0 0 33 | 13333_2021.10_0001_53187993.png 1 1 0 0 34 | 13333_2021.10_0001_53187924.png 1 1 0 0 35 | 13333_2021.10_0001_53188058.png 1 0 0 0 36 | 13333_2021.10_0001_53187784.png 1 0 0 0 37 | 13333_2021.12_0007_57297468.png 1 1 1 1 38 | 13333_2021.12_0007_57297457.png 1 1 0 1 39 | 13333_2021.12_0007_57297464.png 1 1 1 0 40 | 13333_2021.12_0007_57297466.png 0 1 1 1 41 | 13333_2021.12_0007_57297475.png 0 1 1 1 42 | 13333_2021.12_0007_57297439.png 1 1 0 0 43 | 13333_2021.12_0007_57297501.png 0 1 0 0 44 | 13333_2021.12_0007_57297526.png 1 1 1 0 45 | 13333_2021.12_0007_57297495.png 0 1 0 0 46 | 13333_2021.12_0007_57297435.png 1 1 0 0 47 | 13333_2021.12_0007_57297470.png 1 1 0 1 48 | 13333_2021.12_0007_57297488.png 1 1 0 0 49 | 13333_2021.12_0007_57297433.png 1 1 1 0 50 | 13333_2021.12_0007_57297503.png 0 1 0 0 51 | 13333_2021.12_0007_57297517.png 0 1 0 0 52 | 13333_2021.12_0007_57297430.png 1 1 1 0 53 | 13333_2021.12_0007_57297499.png 0 1 0 0 54 | 13333_2021.12_0007_57297472.png 0 1 0 1 55 | 13333_2021.12_0007_57297437.png 1 1 0 0 56 | 13333_2021.12_0009_56515469.png 0 1 1 0 57 | 13333_2021.12_0009_56515337.png 0 1 1 0 58 | 13333_2021.12_0009_56514302.png 1 1 0 0 59 | 13333_2021.12_0009_56515464.png 0 1 0 0 60 | 13333_2021.12_0009_56515481.png 0 1 1 0 61 | 13333_2021.09_0005_52292530.png 1 1 1 0 62 | 13333_2021.09_0005_52292405.png 1 1 0 0 63 | 13333_2021.09_0005_52292441.png 1 1 0 0 64 | 13333_2021.09_0005_52291469.png 1 1 1 0 65 | 13333_2021.09_0005_52292521.png 1 1 1 0 66 | 13333_2021.08_0007_51345236.png 0 1 1 0 67 | 13333_2021.08_0007_51343719.png 1 1 0 0 68 | 13333_2021.08_0007_50954012.png 0 1 0 0 69 | 13333_2021.08_0007_50951398.png 0 1 1 0 70 | 13333_2021.08_0007_51342969.png 0 1 1 0 71 | 13333_2021.08_0007_51342960.png 0 1 1 0 72 | 13333_2021.08_0007_51345154.png 1 1 0 0 73 | 13333_2021.08_0007_51345941.png 0 1 0 0 74 | 13333_2021.08_0007_51342942.png 0 1 0 0 75 | 13333_2021.08_0007_51345996.png 0 1 0 1 76 | 13333_2021.08_0007_50953515.png 0 1 1 0 77 | 13333_2021.08_0007_51343714.png 1 1 0 0 78 | 13333_2021.08_0007_50952962.png 0 1 0 0 79 | 13333_2021.08_0007_51343198.png 1 1 0 0 80 | 13333_2021.08_0007_51343717.png 1 1 0 0 81 | 13333_2021.08_0007_51342950.png 0 1 1 0 82 | 13333_2021.08_0007_50954576.png 0 1 1 0 83 | 13333_2021.08_0007_50954371.png 0 1 1 0 84 | 13333_2021.08_0007_51342955.png 0 1 0 0 85 | 13333_2021.08_0007_50955084.png 0 1 0 0 86 | 13333_2021.08_0007_51342964.png 0 1 1 0 87 | 13333_2021.08_0007_51343711.png 1 1 0 0 88 | 13333_2021.08_0007_51345997.png 0 1 0 1 89 | 13333_2021.06_0000_48587447.png 0 1 0 0 90 | 13333_2021.06_0000_48586815.png 0 1 0 0 91 | 13333_2021.06_0000_48586793.png 0 1 0 0 92 | 13333_2021.06_0000_48586851.png 0 1 0 0 93 | 13333_2021.07_0001_50072119.png 1 1 1 0 94 | 13333_2021.07_0001_50072198.png 1 0 1 0 95 | 13333_2021.07_0001_50072470.png 1 0 1 0 96 | 13333_2021.07_0001_50072170.png 1 0 1 0 97 | 13333_2021.07_0001_50072151.png 1 1 1 0 98 | 13333_2021.07_0001_50072802.png 1 0 1 0 99 | 13333_2021.07_0001_50072200.png 1 0 1 0 100 | 13333_2021.07_0001_50072313.png 1 0 1 0 101 | 13333_2021.01_0004_41724422.png 0 0 1 0 102 | 13333_2021.03_0002_42874388.png 0 1 1 0 103 | 13333_2021.03_0002_42874428.png 1 0 1 0 104 | 13333_2021.03_0002_42874632.png 1 0 1 0 105 | 13333_2021.03_0002_42874016.png 1 1 1 0 106 | 13333_2021.03_0002_42874429.png 1 0 1 0 107 | 13333_2021.03_0002_42874326.png 0 1 1 0 108 | 13333_2021.03_0002_42874344.png 0 1 1 0 109 | 13333_2021.03_0002_42874398.png 0 1 1 0 110 | 13333_2021.03_0002_42874327.png 0 1 1 0 111 | 13333_2021.04_0003_44800690.png 0 0 1 0 112 | 13333_2021.04_0000_44779602.png 0 0 1 0 113 | 13333_2021.12_0009_56515487.png 0 0 0 1 114 | 13333_2021.09_0002_51747297.png 1 0 1 1 115 | 13333_2021.01_0005_41459046.png 0 0 0 1 116 | 13333_2021.01_0005_41459076.png 0 0 0 1 117 | 13333_2021.01_0005_41459039.png 0 0 0 1 118 | 13333_2021.01_0005_41459041.png 0 0 0 1 119 | 13333_2021.01_0005_41459000.png 0 0 0 1 120 | 13333_2021.01_0005_41459038.png 0 0 0 1 121 | 13333_2021.01_0005_41459043.png 0 0 0 1 122 | 13333_2021.01_0005_41459066.png 0 0 0 1 123 | 13333_2021.01_0005_41459042.png 0 0 1 1 124 | 13333_2021.01_0005_41459032.png 0 0 0 1 125 | 13333_2021.01_0005_41459035.png 0 0 0 1 126 | 13333_2021.06_0000_48586898.png 0 0 0 1 127 | 13333_2021.10_0001_53188323.png 0 1 0 1 128 | 13333_2021.10_0001_53188324.png 0 1 0 1 129 | -------------------------------------------------------------------------------- /data_backup/MedFMC/endo/endo_5-shot_train_exp2.txt: -------------------------------------------------------------------------------- 1 | 13333_2021.12_0007_57297497.png 1 0 0 0 2 | 13333_2021.12_0007_57297486.png 1 0 0 1 3 | 13333_2021.12_0007_57297492.png 1 0 0 0 4 | 13333_2021.12_0007_57297415.png 1 0 0 0 5 | 13333_2021.12_0007_57297468.png 1 1 1 1 6 | 13333_2021.12_0007_57297457.png 1 1 0 1 7 | 13333_2021.12_0007_57297453.png 1 0 0 0 8 | 13333_2021.12_0007_57297464.png 1 1 1 0 9 | 13333_2021.12_0007_57297413.png 1 0 0 0 10 | 13333_2021.12_0007_57297477.png 1 0 0 1 11 | 13333_2021.12_0007_57297426.png 1 0 0 0 12 | 13333_2021.12_0007_57297483.png 1 0 0 1 13 | 13333_2021.12_0007_57297412.png 1 0 0 0 14 | 13333_2021.12_0007_57297444.png 1 0 0 0 15 | 13333_2021.12_0007_57297439.png 1 1 0 0 16 | 13333_2021.12_0007_57297526.png 1 1 1 0 17 | 13333_2021.12_0007_57297435.png 1 1 0 0 18 | 13333_2021.12_0007_57297417.png 1 0 0 0 19 | 13333_2021.12_0007_57297428.png 1 0 0 0 20 | 13333_2021.12_0007_57297448.png 1 0 0 1 21 | 13333_2021.12_0007_57297459.png 1 0 0 1 22 | 13333_2021.12_0007_57297470.png 1 1 0 1 23 | 13333_2021.12_0007_57297510.png 1 0 0 0 24 | 13333_2021.12_0007_57297488.png 1 1 0 0 25 | 13333_2021.12_0007_57297433.png 1 1 1 0 26 | 13333_2021.12_0007_57297512.png 1 0 0 0 27 | 13333_2021.12_0007_57297461.png 1 0 0 1 28 | 13333_2021.12_0007_57297450.png 1 0 0 1 29 | 13333_2021.12_0007_57297424.png 1 0 0 0 30 | 13333_2021.12_0007_57297490.png 1 0 0 1 31 | 13333_2021.12_0007_57297481.png 1 0 0 1 32 | 13333_2021.12_0007_57297430.png 1 1 1 0 33 | 13333_2021.12_0007_57297479.png 1 0 0 1 34 | 13333_2021.12_0007_57297419.png 1 0 0 0 35 | 13333_2021.12_0007_57297422.png 1 0 0 0 36 | 13333_2021.12_0007_57297441.png 1 0 0 0 37 | 13333_2021.12_0007_57297455.png 1 0 0 1 38 | 13333_2021.12_0007_57297437.png 1 1 0 0 39 | 13333_2021.12_0009_56514302.png 1 1 0 0 40 | 13333_2021.09_0002_51747303.png 1 1 0 0 41 | 13333_2021.09_0002_51747301.png 1 1 1 0 42 | 13333_2021.09_0002_51747297.png 1 0 1 1 43 | 13333_2021.09_0002_51747300.png 1 1 0 0 44 | 13333_2021.09_0002_51747299.png 1 0 1 0 45 | 13333_2021.09_0002_51747302.png 1 1 0 0 46 | 13333_2021.08_0007_51343719.png 1 1 0 0 47 | 13333_2021.08_0007_51346424.png 1 0 1 0 48 | 13333_2021.08_0007_51346425.png 1 0 0 0 49 | 13333_2021.08_0007_51345154.png 1 1 0 0 50 | 13333_2021.08_0007_51346427.png 1 0 0 0 51 | 13333_2021.08_0007_51343714.png 1 1 0 0 52 | 13333_2021.08_0007_51343198.png 1 1 0 0 53 | 13333_2021.08_0007_51343717.png 1 1 0 0 54 | 13333_2021.08_0007_50953037.png 1 0 0 0 55 | 13333_2021.08_0007_51342973.png 1 0 0 0 56 | 13333_2021.08_0007_50955126.png 1 0 0 0 57 | 13333_2021.08_0007_51343722.png 1 0 0 0 58 | 13333_2021.08_0007_51343711.png 1 1 0 0 59 | 13333_2021.08_0007_51340501.png 1 0 0 0 60 | 13333_2021.01_0000_41224617.png 1 0 1 0 61 | 13333_2021.01_0000_41223967.png 1 0 0 0 62 | 13333_2021.01_0000_41224708.png 1 0 1 0 63 | 13333_2021.12_0006_55977222.png 1 1 0 0 64 | 13333_2021.12_0006_55977210.png 0 1 0 0 65 | 13333_2021.12_0006_55977223.png 0 1 0 0 66 | 13333_2021.12_0006_55977207.png 0 1 0 0 67 | 13333_2021.12_0006_55977220.png 0 1 0 0 68 | 13333_2021.12_0006_55977219.png 0 1 0 0 69 | 13333_2021.12_0006_55977217.png 0 1 0 0 70 | 13333_2021.12_0006_55977221.png 0 1 0 0 71 | 13333_2021.12_0006_55977211.png 0 1 0 0 72 | 13333_2021.12_0006_55977205.png 0 1 0 0 73 | 13333_2021.12_0009_56515469.png 0 1 1 0 74 | 13333_2021.12_0009_56515337.png 0 1 1 0 75 | 13333_2021.12_0009_56514302.png 1 1 0 0 76 | 13333_2021.12_0009_56515464.png 0 1 0 0 77 | 13333_2021.12_0009_56515481.png 0 1 1 0 78 | 13333_2021.07_0000_50128464.png 1 1 1 0 79 | 13333_2021.07_0000_50128467.png 1 1 1 0 80 | 13333_2021.07_0000_50128451.png 1 1 1 0 81 | 13333_2021.07_0000_50128455.png 1 1 1 0 82 | 13333_2021.01_0000_41224567.png 0 1 1 0 83 | 13333_2021.01_0000_41225642.png 0 1 0 0 84 | 13333_2021.01_0000_41224354.png 0 1 0 0 85 | 13333_2021.01_0000_41224069.png 0 1 0 0 86 | 13333_2021.01_0000_41225574.png 0 1 1 0 87 | 13333_2021.01_0000_41224861.png 0 1 1 0 88 | 13333_2021.01_0000_41224367.png 0 1 0 0 89 | 13333_2021.06_0000_48587447.png 0 1 0 0 90 | 13333_2021.06_0000_48586815.png 0 1 0 0 91 | 13333_2021.06_0000_48586793.png 0 1 0 0 92 | 13333_2021.06_0000_48586851.png 0 1 0 0 93 | 13333_2021.09_0002_51747301.png 1 1 1 0 94 | 13333_2021.09_0002_51747297.png 1 0 1 1 95 | 13333_2021.09_0002_51747299.png 1 0 1 0 96 | 13333_2021.09_0002_51747298.png 0 1 1 0 97 | 13333_2021.09_0004_52719674.png 0 0 1 0 98 | 13333_2021.09_0004_52719508.png 0 0 1 0 99 | 13333_2021.09_0004_52719617.png 0 0 1 0 100 | 13333_2021.09_0004_52720500.png 0 0 1 0 101 | 13333_2021.08_0004_51381059.png 1 1 1 0 102 | 13333_2021.01_0000_41224567.png 0 1 1 0 103 | 13333_2021.01_0000_41224617.png 1 0 1 0 104 | 13333_2021.01_0000_41224395.png 0 0 1 0 105 | 13333_2021.01_0000_41225574.png 0 1 1 0 106 | 13333_2021.01_0000_41224708.png 1 0 1 0 107 | 13333_2021.01_0000_41224861.png 0 1 1 0 108 | 13333_2021.01_0000_41224097.png 0 0 1 0 109 | 13333_2021.06_0000_48587044.png 0 0 1 0 110 | 13333_2021.06_0000_48586752.png 0 0 1 0 111 | 13333_2021.06_0000_48586737.png 0 0 1 0 112 | 13333_2021.11_0002_54971866.png 1 0 0 1 113 | 13333_2021.12_0007_57297486.png 1 0 0 1 114 | 13333_2021.12_0007_57297468.png 1 1 1 1 115 | 13333_2021.12_0007_57297457.png 1 1 0 1 116 | 13333_2021.12_0007_57297477.png 1 0 0 1 117 | 13333_2021.12_0007_57297466.png 0 1 1 1 118 | 13333_2021.12_0007_57297475.png 0 1 1 1 119 | 13333_2021.12_0007_57297483.png 1 0 0 1 120 | 13333_2021.12_0007_57297448.png 1 0 0 1 121 | 13333_2021.12_0007_57297459.png 1 0 0 1 122 | 13333_2021.12_0007_57297470.png 1 1 0 1 123 | 13333_2021.12_0007_57297461.png 1 0 0 1 124 | 13333_2021.12_0007_57297450.png 1 0 0 1 125 | 13333_2021.12_0007_57297490.png 1 0 0 1 126 | 13333_2021.12_0007_57297481.png 1 0 0 1 127 | 13333_2021.12_0007_57297479.png 1 0 0 1 128 | 13333_2021.12_0007_57297455.png 1 0 0 1 129 | 13333_2021.12_0007_57297472.png 0 1 0 1 130 | 13333_2021.09_0002_51747297.png 1 0 1 1 131 | 13333_2021.08_0007_51346048.png 0 0 1 1 132 | 13333_2021.08_0007_50950824.png 0 0 1 1 133 | 13333_2021.08_0007_51346049.png 0 0 1 1 134 | 13333_2021.08_0007_51346052.png 0 0 1 1 135 | 13333_2021.08_0007_51345995.png 0 0 0 1 136 | 13333_2021.08_0007_51346099.png 0 0 1 1 137 | 13333_2021.08_0007_51346335.png 0 0 0 1 138 | 13333_2021.08_0007_51345996.png 0 1 0 1 139 | 13333_2021.08_0007_51345994.png 0 0 0 1 140 | 13333_2021.08_0007_51345997.png 0 1 0 1 141 | 13333_2021.01_0005_41459046.png 0 0 0 1 142 | 13333_2021.01_0005_41459076.png 0 0 0 1 143 | 13333_2021.01_0005_41459039.png 0 0 0 1 144 | 13333_2021.01_0005_41459041.png 0 0 0 1 145 | 13333_2021.01_0005_41459000.png 0 0 0 1 146 | 13333_2021.01_0005_41459038.png 0 0 0 1 147 | 13333_2021.01_0005_41459043.png 0 0 0 1 148 | 13333_2021.01_0005_41459066.png 0 0 0 1 149 | 13333_2021.01_0005_41459042.png 0 0 1 1 150 | 13333_2021.01_0005_41459032.png 0 0 0 1 151 | 13333_2021.01_0005_41459035.png 0 0 0 1 152 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_5-shot_train_exp1.txt: -------------------------------------------------------------------------------- 1 | 5B038B1585CD55.png 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 2 | 5B52E5261448875.png 1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0 3 | 5DDCA02820906AD.png 1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 4 | DX.1.2.840.113619.2.369.4.2147483647.1574053025.524379.png 1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0 5 | DX.1.3.46.670589.26.802544.25.20191028.151947.303899.0.png 1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6 | 5CAE969A14BCF85.png 1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0 7 | 5E1418F71C60B51.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 8 | 5DB7978D38CC930.png 0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 9 | DX.1.2.840.113564.920101.20191114094434562670.1003000225002.png 1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 10 | 5DF823841384A28.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 11 | 5DF9DD1B661C990.png 1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 12 | 5DF8332E3AE0F46.png 1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13 | 5E3911805F004E3.png 1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 14 | 5D03372A1EFCECF.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15 | 5BF607922234B06.png 1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1 16 | DX.1.2.00290203000339253120191019091819257713078.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 17 | CR.1.2.156.600734.516764694.1648.1572660184.913.0.1.png 0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 18 | DX.1.2.840.113619.2.369.4.2147483647.1568182607.189661.png 0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 19 | 5D872B7B828E4F.png 0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 20 | CR.1.3.12.2.1107.5.3.57.20200.11.201911070953510453.png 0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 21 | DX.1.2.00311397000340270620191025093046352501046.png 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 22 | 5C96D3141740DD1.png 1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 23 | CR.1.2.156.600734.516764694.1648.1573691235.1774.0.1.png 1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0 24 | 5CD614D722A4A57.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 25 | DX.1.2.840.113619.2.369.4.2147483647.1573609255.761813.png 0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 26 | 5B948B191330B8C.png 1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0 27 | 5B36E6791A887E3.png 0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 28 | DX.1.3.46.670589.26.802544.25.20191104.123508.306128.0.png 1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1 29 | 5CE387661C0470D.png 1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 30 | 5DFC232E23F4EEA.png 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 31 | 5E1580F226F4C13.png 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 32 | CR.1.2.156.600734.516764694.1648.1571883442.228.0.3.png 0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0 33 | CR.1.3.12.2.1107.5.3.57.20200.11.201910300857570328.png 0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0 34 | 5CBC1D85175C88B.png 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0 35 | 5CAD3CFA20D4C8F.png 1,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0 36 | 5DD8EFF72EA8290.png 1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0 37 | 5DE9B0B74848F45.png 1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 38 | CR.1.3.12.2.1107.5.3.57.20200.11.201910210806550437.png 0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 39 | DX.1.2.002925210003416715201911040900195163843.png 0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 40 | 5E06C4304E84C4D.png 0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 41 | DX.1.2.392.200046.100.2.1.69131194618.191115083646.1.1.1.png 1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 42 | 5D076510162C1D3.png 1,0,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0 43 | 5E00751A6570C5F.png 0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0 44 | 5D29282F135471B.png 1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0 45 | DX.1.2.840.113619.2.369.4.2147483647.1573440818.887490.png 0,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0 46 | 5C242C2D1E4C913.png 1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0 47 | DX.1.2.00308279000343900120191118103008603138593.png 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 48 | 5DFC81AD5298806.png 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 49 | DX.1.2.840.113619.2.369.4.2147483647.1573711590.939452.png 0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 50 | 5D01A9D61DA8143.png 0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 51 | 5D50BB8D5008998.png 0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0 52 | 5CFDD352236CA8A.png 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 53 | 5D2538F53EF005F.png 0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0 54 | CR.1.2.156.600734.516764694.1648.1571883442.228.0.3.png 0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0 55 | 5B96272B1F34B72.png 0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0 56 | 5D122F394458D71.png 0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0 57 | 5D1AABFE47703FE.png 1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 58 | 5DC0C331461C2DC.png 0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0 59 | 5CF1C7B21BC8B24.png 1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0 60 | 5D12BDE8565CA4B.png 1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 61 | 5D31144641801C6.png 0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0 62 | 5D6C75773FB4945.png 1,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0 63 | 5CA15A2610C4218.png 0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 64 | 5DAD684653E0C5C.png 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 65 | 5C92E28F220C6AE.png 0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 66 | 5B87A4E518F04B3.png 0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0 67 | 5B8F33931F44C1.png 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 68 | 5BD51B661934866.png 1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0 69 | 5E30D54D2390A7F.png 1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 70 | 5CFE39841538A19.png 0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0 71 | 5D7C45ADB7CEC1.png 0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0 72 | 5E23EE5AF64A05.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 73 | 5E198111714337.png 0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0 74 | 5DF6D2823218A48.png 0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0 75 | DX.1.2.392.200046.100.2.1.69131194618.191106103603.2.1.1.png 0,0,0,1,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0 76 | DX.1.2.392.200036.9125.4.0.487539339.2277926294.2795306561.png 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 77 | CR.1.2.156.600734.516764694.1648.1572660184.913.0.1.png 0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 78 | 5B31F703145CBE3.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 79 | DX.1.2.392.200036.9125.4.0.487564169.769680790.2795306561.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 80 | DX.1.2.392.200036.9125.4.0.487587446.4086064534.2795306561.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 81 | 5D38F7C73E28447.png 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0 82 | 5B879F3E1D8035A.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 83 | 5E02BB141FF8600.png 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 84 | CR.1.3.12.2.1107.5.3.57.20200.11.201910200841010859.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 85 | DX.1.3.46.670589.26.802544.25.20191107.91620.307079.0.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 86 | 5B038B1585CD55.png 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 87 | 5E264AE7631CA3D.png 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 88 | 5C11C11B1184018.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 89 | 5C0B75D06D8C32.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 90 | 5D06F676254C3AA.png 1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0 91 | 5B4D5509C48528.png 1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 92 | 5DF97AB23788A98.png 1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1 93 | 5BBAEFAB22D0158.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 94 | CR.1.2.156.600734.516764694.1648.1572318439.601.0.1.png 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 95 | 5BF607922234B06.png 1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1 96 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_5-shot_train_exp3.txt: -------------------------------------------------------------------------------- 1 | CR.1.2.156.600734.516764694.1648.1573782906.1859.0.1.png 1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2 | 5E0EF7392DC4D8D.png 1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 3 | 5DFF0F185218975.png 1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 4 | 01D400BAD93EF4AD.png 1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 5 | 5DF3A63F4F10BAB.png 1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 6 | 5C92E28F220C6AE.png 0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 7 | 5E291B65554E65.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 8 | 5C613091BD474B.png 0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 9 | 5DF0499458D0EDB.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 10 | DX.1.2.392.200046.100.2.1.69131194618.191108181105.1.1.1.png 0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 11 | 5E15814C5ED8140.png 1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0 12 | DX.1.3.46.670589.26.802544.25.20191118.140354.310335.0.png 1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13 | DX.1.2.392.200036.9125.4.0.487537519.469525910.2795306561.png 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14 | 5B7CFADD41C3CF.png 0,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0 15 | DX.1.2.392.200036.9125.4.0.487576953.2411357590.2795306561.png 1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 16 | DX.1.2.840.113564.920101.20191114091813578130.1003000225002.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 17 | DX.1.2.840.113619.2.369.4.2147483647.1573094919.364413.png 0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 18 | DX.1.2.00312527000340485020191026100319440853671.png 0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 19 | DX.1.2.002925210003416715201911040900195163843.png 0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 20 | 5B947304C506AD.png 1,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 21 | 5DCA05CE56D486D.png 0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 22 | 5DD8EFF72EA8290.png 1,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0 23 | DX.1.3.46.670589.26.802544.25.20191114.152409.309348.0.png 1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 24 | 5CAAC0CFEB0B80.png 1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 25 | 5CDD10AA1C00650.png 1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0 26 | 5BE1C03910E0CBB.png 0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0 27 | 5D8ACB495718EC9.png 0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 28 | 5B52E5261448875.png 1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0 29 | 5CC3A1E82664332.png 0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0 30 | 5C613091BD474B.png 0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 31 | DX.1.2.840.113564.920101.20191105135645546340.1003000225002.png 0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 32 | CR.1.3.46.670589.26.602199.4.20191106.72936.334190.0.png 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 33 | 5E13D4411528F70.png 1,0,0,1,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0 34 | 5D5B44D0627010F.png 0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0 35 | 5E041A35488C63F.png 1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 36 | 5DD35AF938B47EA.png 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0 37 | DX.1.2.392.200046.100.2.1.69131194618.191115083646.1.1.1.png 1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 38 | DX.1.2.840.113619.2.369.4.2147483647.1573693430.276072.png 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 39 | CR.1.3.46.670589.26.602199.4.20191104.75625.334155.0.png 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 40 | 5E1D6EE9491CE2C.png 0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 41 | CR.1.2.156.600734.516764694.1648.1574035888.2025.0.1.png 0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 42 | CR.1.3.12.2.1107.5.3.57.20200.11.201910240906280906.png 0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0 43 | 5D1AA5A545549BB.png 1,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0 44 | 5B61B0A31C28F19.png 1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 45 | 5C242C2D1E4C913.png 1,0,1,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0 46 | CR.1.3.12.2.1107.5.3.57.20200.11.201911051501510390.png 0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0 47 | DX.1.2.00311313000340096020191024083701262875937.png 0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0 48 | 5C67C347B4C226.png 0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0 49 | 5E0ED5B32938A6F.png 0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 50 | 5B36E6791A887E3.png 0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 51 | 5B0E1E3F1284FD9.png 1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0 52 | CR.1.3.12.2.1107.5.3.57.20200.11.201910211630480765.png 0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 53 | CR.1.3.46.670589.26.602199.4.20191107.73805.334233.0.png 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 54 | 5C98492C1E20AD8.png 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 55 | 5DEC47EE5170CA7.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 56 | CR.1.2.156.600734.516764694.1648.1572570106.819.0.1.png 0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 57 | 5D67239B2C40D88.png 1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 58 | 5D29282F135471B.png 1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0 59 | 5E20FDDE220C28.png 1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 60 | 5E2108C23E7C7EF.png 1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 61 | 5D88278B428C238.png 0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0 62 | 5D12BDE8565CA4B.png 1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 63 | 5E01D71A17640CE.png 1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 64 | DX.1.2.392.200046.100.2.1.69131194618.191106103603.2.1.1.png 0,0,0,1,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0 65 | 5D4BB9EF1D1CFC3.png 0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 66 | 5E1FD97663EC35B.png 1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0 67 | 5CAAC0CFEB0B80.png 1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 68 | 5E1EAE5E414C7F5.png 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0 69 | 5E30D54D2390A7F.png 1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 70 | 5D50BB8D5008998.png 0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0 71 | 5D31144641801C6.png 0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0 72 | 5DF6D2823218A48.png 0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0 73 | 5DE9BD543F58F9A.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 74 | 5BF8EAEFF1CAF3.png 0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 75 | 5DF03CB738088AD.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 76 | DX.1.2.392.200036.9125.4.0.487587446.4086064534.2795306561.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 77 | DX.1.2.392.200036.9125.4.0.487563918.2173855126.2795306561.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 78 | DX.1.2.392.200036.9125.4.0.487539339.2277926294.2795306561.png 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 79 | 5B31F703145CBE3.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 80 | DX.1.2.392.200036.9125.4.0.487543916.1068721558.2795306561.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 81 | CR.1.2.156.600734.516764694.1648.1571876541.202.0.1.png 0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0 82 | 5D50BA8F1EB4F1D.png 0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0 83 | DX.1.3.46.670589.26.802544.25.20191107.91620.307079.0.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 84 | CR.1.2.840.113564.199912075.2019111417420171237.1203801020003.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 85 | 5E02BB141FF8600.png 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 86 | 5C11C11B1184018.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 87 | 5DBE830BCD000D.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 88 | 5E1FADB1413494B.png 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 89 | 5B1A21A377C692.png 1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 90 | 5B038B1585CD55.png 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 91 | 5DF97AB23788A98.png 1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1 92 | DX.1.3.46.670589.26.802544.25.20191104.123508.306128.0.png 1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1 93 | 5B4D5509C48528.png 1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 94 | 5D4E7FDE13C0A95.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 95 | CR.1.2.156.600734.516764694.1648.1572318439.601.0.1.png 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 96 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_5-shot_train_exp5.txt: -------------------------------------------------------------------------------- 1 | 5CF85CB418E8426.png 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 2 | CR.1.3.12.2.1107.5.3.57.20200.11.201911050946150781.png 1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 3 | 5D29282F135471B.png 1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0 4 | 5CD614D722A4A57.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 5 | 5B0E1E3F1284FD9.png 1,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0 6 | 5DF1E3B51F879F.png 1,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0 7 | 5DEC47EE5170CA7.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 8 | 5E2653D72460CFB.png 0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0 9 | 5E158DF12218AF9.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 10 | CR.1.2.156.600734.516764694.1648.1573390533.1476.0.1.png 0,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0 11 | 5E0E8D6A1790F8E.png 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 12 | 5B8F33931F44C1.png 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 13 | 5B863B8B13E8954.png 1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 14 | DX.1.2.392.200036.9125.4.0.487562353.556557718.2795306561.png 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 15 | CR.1.2.156.600734.516764694.906304.1571272610.67.0.1.png 1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 16 | DX.1.3.46.670589.26.802544.25.20191104.135438.306180.0.png 0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 17 | DX.1.2.392.200036.9125.4.0.487538829.1360553366.2795306561.png 0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 18 | DX.1.2.0030956500033961372019102210183396168390.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19 | 5DF5A26B61CC0F9.png 0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 20 | CR.1.2.840.113564.199912075.2019111818104102366.1203801020003.png 0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 21 | 5BB7083F18A03FC.png 0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 22 | 5C808A5F19F817C.png 1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 23 | 5C105E2B18D042B.png 1,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0 24 | DX.1.2.840.113619.2.369.4.2147483647.1573094919.364413.png 0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 25 | 5C96D3141740DD1.png 1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 26 | 5C613091BD474B.png 0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 27 | 5B3C3BB91FA4DB0.png 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 28 | DX.1.3.46.670589.26.802544.25.20191107.142309.307252.0.png 0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0 29 | 5DFAE2351848A38.png 1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 30 | DX.1.2.00282656000335729420191115082055336185109.png 0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 31 | 5DC36AB14F741B6.png 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 32 | DX.1.2.840.113619.2.369.4.2147483647.1572247305.771219.png 0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0 33 | 5B5AC57913C06A9.png 1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 34 | CR.1.2.156.600734.516764694.906304.1571282978.101.0.1.png 1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0 35 | 5CC3A1E82664332.png 0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0 36 | DX.1.2.00289169000340072920191024080130260745031.png 1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 37 | CR.1.3.46.670589.26.602199.4.20190910.85030.331841.0.png 0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 38 | DX.1.2.392.200036.9125.4.0.487576953.2411357590.2795306561.png 1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 39 | 5C613091BD474B.png 0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 40 | 5C32A4A31B2CCAF.png 1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 41 | DX.1.3.46.670589.26.802544.25.20191118.110544.310229.0.png 0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 42 | 5DBF77F157B4694.png 1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0 43 | DX.1.2.840.113619.2.369.4.2147483647.1574046706.24721.png 1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0 44 | 5D03616F220883D.png 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 45 | DX.1.2.840.113564.920101.20191114094434562670.1003000225002.png 1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 46 | DX.1.2.003080790003404763201910280813132513203.png 0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 47 | 5CDE29862538C58.png 0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0 48 | 5DD2E1BB19F06C9.png 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 49 | 5D6786B32A98CEF.png 1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 50 | 5E1D6EE9491CE2C.png 0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 51 | 5D50BB8D5008998.png 0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,0,0 52 | 5BE1C03910E0CBB.png 0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0 53 | DX.1.2.392.200046.100.2.1.69131194618.191024091750.1.1.1.png 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 54 | 5CFDD352236CA8A.png 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 55 | 5DF6E4C83BA0C48.png 1,1,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0 56 | DX.1.2.840.113619.2.369.4.2147483647.1574036210.480417.png 1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 57 | 5D8ADED64EC8E4B.png 1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0 58 | 5D462EC730B0E9D.png 0,0,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0 59 | 5D1AABFE47703FE.png 1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 60 | 5DF821C75260383.png 0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0 61 | DX.1.2.840.113619.2.369.4.2147483647.1573441772.587452.png 0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0 62 | 5CCA45E8FDC714.png 0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 63 | 5C8A130016F86F3.png 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 64 | 5D12BDE8565CA4B.png 1,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0 65 | DX.1.2.392.200046.100.2.1.69131194618.191023155159.2.1.1.png 1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0 66 | DX.1.2.392.200036.9125.4.0.487584399.1157981590.2795306561.png 1,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0 67 | 5CDCBE9918E0776.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 68 | 5BC84890217C36C.png 1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 69 | 5D29282F135471B.png 1,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0 70 | 5E264AE7631CA3D.png 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 71 | 5BF8EAEFF1CAF3.png 0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 72 | 5DE9BD543F58F9A.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 73 | 5DF6D2823218A48.png 0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0 74 | 5E23EE5AF64A05.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 75 | DX.1.2.840.113619.2.369.4.2147483647.1572240971.521069.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 76 | DX.1.2.392.200036.9125.4.0.487543916.1068721558.2795306561.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 77 | 5B31F703145CBE3.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 78 | 5AF949B1440523.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 79 | DX.1.2.392.200036.9125.4.0.487563918.2173855126.2795306561.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 80 | DX.1.2.392.200036.9125.4.0.487538287.662594966.2795306561.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 81 | DX.1.3.46.670589.26.802544.25.20191107.91620.307079.0.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 82 | CR.1.2.840.113564.199912075.2019111417420171237.1203801020003.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 83 | 5E02BB141FF8600.png 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 84 | 5D38F7C73E28447.png 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0 85 | 5B879F3E1D8035A.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 86 | 5D155FD8330C1EB.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 87 | 5BE8E74320A0A98.png 0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0 88 | 5DBE830BCD000D.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 89 | 5C0B75D06D8C32.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 90 | 5E1FADB1413494B.png 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 91 | CR.1.2.156.600734.516764694.1648.1572318439.601.0.1.png 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 92 | 5DF97AB23788A98.png 1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1 93 | 5BF607922234B06.png 1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1 94 | 5B4D5509C48528.png 1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 95 | 5D4E7FDE13C0A95.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 96 | -------------------------------------------------------------------------------- /tools/generate_few-shot_file.py: -------------------------------------------------------------------------------- 1 | import os 2 | import random 3 | import yaml 4 | from baseline_multiclass import gen_support_set_twoclass, load_annotations 5 | from baseline_multilabel import (gen_support_set, gen_support_set_endo, 6 | load_chest_annotations, load_endo_annotations) 7 | 8 | K_shot_lst = [1, 5, 10] 9 | # make total validation number not larger than 3000 10 | val_num = 3000 11 | dataset_type_lst = ['endo', 'colon', 'chest'] 12 | exp_num_total = 1 13 | 14 | for exp_num in range(1, 1 + exp_num_total): 15 | for dataset_type in dataset_type_lst: 16 | for K_shot in K_shot_lst: 17 | # load config file of Colon 18 | if dataset_type == 'colon': 19 | filepath = os.path.join(os.getcwd(), 20 | './configs/baseline_multiclass.yaml') 21 | elif dataset_type == 'chest' or dataset_type == 'endo': 22 | filepath = os.path.join(os.getcwd(), 23 | './configs/baseline_multilabel.yaml') 24 | 25 | with open(filepath, 'r') as f: 26 | cfg = yaml.load(f, Loader=yaml.FullLoader) 27 | train_list_txt = cfg['data_cfg'][dataset_type]['train_list_txt'] 28 | 29 | if dataset_type == 'colon': 30 | train_img_infos = load_annotations(train_list_txt) 31 | elif dataset_type == 'endo': 32 | train_img_infos = load_endo_annotations(train_list_txt) 33 | elif dataset_type == 'chest': 34 | train_img_infos = load_chest_annotations(train_list_txt) 35 | else: 36 | raise ValueError(f'Invalid dataset type {dataset_type}.') 37 | 38 | if dataset_type == 'colon': 39 | support_set = gen_support_set_twoclass(train_img_infos, K_shot, 40 | 'colon') 41 | few_shot_lst = [] 42 | with open(f'colon_{K_shot}-shot_train_exp{exp_num}.txt', 43 | 'w') as f: 44 | for i, i_class in enumerate(support_set): 45 | for j_id in support_set[i]: 46 | f.write(j_id + ' ' + str(i) + '\n') 47 | few_shot_lst.append(j_id) 48 | # generate validation set txt file 49 | few_shot_val_lst = [] 50 | with open(f'colon_{K_shot}-shot_val_exp{exp_num}.txt', 51 | 'w') as f: 52 | val_cur = 0 53 | while val_cur < val_num: 54 | num = random.randint(0, len(train_img_infos) - 1) 55 | filename = train_img_infos[num]['filename'] 56 | gt_label = train_img_infos[num]['gt_label'] 57 | if (filename not in few_shot_lst) and ( 58 | filename not in few_shot_val_lst): 59 | few_shot_val_lst.append(filename) 60 | f.write(filename + ' ' + str(gt_label) + '\n') 61 | val_cur += 1 62 | if len(few_shot_val_lst) + len(few_shot_lst) == len( 63 | train_img_infos): 64 | print('The validation set are not enough...') 65 | print( 66 | len(train_img_infos), len(few_shot_lst), 67 | len(few_shot_val_lst)) 68 | break 69 | 70 | if dataset_type == 'endo': 71 | # total class number of dataset 72 | N_way = cfg['data_cfg'][dataset_type]['N_way'] 73 | support_set = gen_support_set_endo(train_img_infos, N_way, 74 | K_shot) 75 | # used in generating .txt file 76 | elif dataset_type == 'chest': 77 | N_way = cfg['data_cfg'][dataset_type]['N_way'] 78 | support_set = gen_support_set(train_img_infos, N_way, K_shot) 79 | if dataset_type == 'endo' or dataset_type == 'chest': 80 | few_shot_lst = [] 81 | with open( 82 | f'{dataset_type}_{K_shot}-shot_train_exp{exp_num}.txt', 83 | 'w') as f: 84 | for i, i_class in enumerate(support_set): 85 | for j_id in support_set[i]: 86 | j_pid, j_label = j_id 87 | k_line = j_pid 88 | few_shot_lst.append(j_id) 89 | for k, k_label in enumerate(j_label.tolist()): 90 | if dataset_type == 'endo': 91 | sep_str = ' ' 92 | elif dataset_type == 'chest' and k == 0: 93 | sep_str = ' ' 94 | elif dataset_type == 'chest' and k != 0: 95 | sep_str = ',' 96 | k_line += sep_str + str(k_label) 97 | f.write(k_line + '\n') 98 | 99 | few_shot_val_lst = [] 100 | with open(f'{dataset_type}_{K_shot}-shot_val_exp{exp_num}.txt', 101 | 'w') as f: 102 | val_cur = 0 103 | while val_cur < val_num: 104 | num = random.randint(0, len(train_img_infos) - 1) 105 | filename = train_img_infos[num]['filename'] 106 | gt_label = train_img_infos[num]['gt_label'] 107 | if (filename not in few_shot_lst) and ( 108 | filename not in few_shot_val_lst): 109 | few_shot_val_lst.append(filename) 110 | k_line = filename 111 | for j, j_label in enumerate(gt_label.tolist()): 112 | if dataset_type == 'endo': 113 | sep_str = ' ' 114 | elif dataset_type == 'chest' and j == 0: 115 | sep_str = ' ' 116 | elif dataset_type == 'chest' and j != 0: 117 | sep_str = ',' 118 | k_line += sep_str + str(j_label) 119 | f.write(k_line + '\n') 120 | val_cur += 1 121 | if len(few_shot_val_lst) + len(few_shot_lst) == len( 122 | train_img_infos): 123 | print('The validation set are not enough...') 124 | print( 125 | len(train_img_infos), len(few_shot_lst), 126 | len(few_shot_val_lst)) 127 | break 128 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_5-shot_train_exp4.txt: -------------------------------------------------------------------------------- 1 | DX.1.2.840.113619.2.369.4.2147483647.1574038090.806692.png 1,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0 2 | DX.1.2.840.113619.2.369.4.2147483647.1568169545.551958.png 1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 3 | 5D07B3FA1C08CBA.png 1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 4 | 5E266581404CE0B.png 1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 5 | 5BFE2DCB233CB47.png 1,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0 6 | 5B4D5509C48528.png 1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 7 | DX.1.2.392.200036.9125.4.0.487546999.891250070.2795306561.png 1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 8 | DX.1.2.0030963600033962002019102210151995974500.png 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 9 | 5E03FD1958E8EC6.png 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 10 | 5D0C76EC20C8EF6.png 0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0 11 | 5D0044591284D88.png 0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0 12 | CR.1.2.156.600734.516764694.1648.1572062207.367.0.1.png 1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 13 | 01D400BAD93EF4AD.png 1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 14 | CR.1.2.156.600734.516764694.906304.1571387645.197.0.1.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 15 | DX.1.2.392.200036.9125.4.0.487536272.161441174.2795306561.png 1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 16 | CR.1.3.12.2.1107.5.3.57.20200.11.201911061519170078.png 0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 17 | DX.1.2.392.200036.9125.4.0.487568266.1872913814.2795306561.png 1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 18 | DX.1.2.0030956500033961372019102210183396168390.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19 | DX.1.2.840.113564.920101.20191114091813578130.1003000225002.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 20 | DX.1.2.392.200046.100.2.1.69131194618.191024094743.3.1.1.png 0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 21 | 5B87A4E518F04B3.png 0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0 22 | 5E21082A6088F21.png 1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0 23 | 5D1E96532294761.png 0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0 24 | 5BAECA6D1128A6B.png 0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 25 | 5C219A641C5CB9F.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 26 | DX.1.2.0031618800034298722019111208054476074546.png 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 27 | 5DF9DD1B661C990.png 1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 28 | DX.1.2.392.200036.9125.4.0.487561585.153642390.2795306561.png 0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0 29 | 5E02CEBD20E0521.png 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 30 | 5BD51B661934866.png 1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0 31 | 5DC36AB14F741B6.png 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 32 | CR.1.2.156.600734.516764694.533640.1571620398.58.0.1.png 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 33 | 5C9ED2B81160958.png 1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0 34 | 5D1E96532294761.png 0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0 35 | 5C105E2B18D042B.png 1,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0 36 | DX.1.2.840.113619.2.369.4.2147483647.1573008277.812866.png 0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0 37 | 5D6A2F0D6404E4.png 0,1,1,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 38 | CR.1.3.46.670589.26.602199.4.20191104.75625.334155.0.png 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 39 | CR.1.2.156.600734.516764694.1648.1573779737.1846.0.1.png 1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 40 | 5B42CA9D189807A.png 0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 41 | 5CEB4F1024C425F.png 0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0 42 | DX.1.2.392.200036.9125.4.0.487584399.1157981590.2795306561.png 1,0,1,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0 43 | 5B8DE4FE514B11.png 1,0,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0 44 | DX.1.2.840.113619.2.369.4.2147483647.1573711590.939452.png 0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 45 | 5DB6538320C0528.png 0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0 46 | 5E0035F6494076E.png 0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0 47 | 5E391E0F5444455.png 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 48 | 5DEAFFF638DC3E7.png 0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0 49 | DX.1.2.392.200036.9125.4.0.487524488.388523414.2795306561.png 0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0 50 | DX.1.2.392.200036.9125.4.0.487561585.153642390.2795306561.png 0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0 51 | 5C12FD2325ACB7F.png 0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0 52 | 5DEAFFF638DC3E7.png 0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0 53 | 5B96272B1F34B72.png 0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0 54 | 5CF8729C26B0FA3.png 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 55 | 5DF0499458D0EDB.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 56 | 5DBF6DBA4C00043.png 1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 57 | 5E0FF9ED25D8C10.png 1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 58 | 5DFD7C742A40EDF.png 1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0 59 | 5D076510162C1D3.png 1,0,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0 60 | 5E2108C23E7C7EF.png 1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 61 | 5DFDBA945D5C7C7.png 1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 62 | 5CCA45E8FDC714.png 0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 63 | DX.1.2.392.200036.9125.4.0.487546999.891250070.2795306561.png 1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 64 | DX.1.2.392.200036.9125.4.0.487532918.1864000918.2795306561.png 0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 65 | 5C8A130016F86F3.png 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 66 | 5B038B1585CD55.png 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 67 | 5E1EAE5E414C7F5.png 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0 68 | 5B1A21A377C692.png 1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 69 | 5E1FD97663EC35B.png 1,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0 70 | 5D186BE94440AB.png 0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0 71 | DX.1.2.392.200036.9125.4.0.487561585.153642390.2795306561.png 0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0 72 | 5DF6D2823218A48.png 0,1,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0 73 | 5BF8EAEFF1CAF3.png 0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 74 | 5CDB65BB20941C2.png 0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0 75 | DX.1.2.003080790003404763201910280813132513203.png 0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 76 | 5E3AC1C33810F33.png 0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0 77 | DX.1.2.392.200036.9125.4.0.487563918.2173855126.2795306561.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 78 | DX.1.2.392.200036.9125.4.0.487543916.1068721558.2795306561.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 79 | DX.1.2.392.200036.9125.4.0.487568266.1872913814.2795306561.png 1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 80 | DX.1.2.392.200036.9125.4.0.487539339.2277926294.2795306561.png 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 81 | 5D0C278B2354767.png 1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0 82 | CR.1.2.156.600734.516764694.1648.1571876541.202.0.1.png 0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0 83 | CR.1.2.156.600734.516764694.1648.1571818379.173.0.1.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 84 | 5E02BB141FF8600.png 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 85 | CR.1.3.12.2.1107.5.3.57.20200.11.201910200841010859.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 86 | 5C0B75D06D8C32.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 87 | 5BE8E74320A0A98.png 0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0 88 | 5D06F676254C3AA.png 1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0 89 | 5B1A21A377C692.png 1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0 90 | 5D155FD8330C1EB.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 91 | DX.1.3.46.670589.26.802544.25.20191118.111243.310233.0.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 92 | 5D4E7FDE13C0A95.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 93 | 5CDCBE9918E0776.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 94 | 5BBAEFAB22D0158.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 95 | DX.1.2.392.200036.9125.4.0.487527527.2272486806.2795306561.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 96 | -------------------------------------------------------------------------------- /data_backup/MedFMC/chest/chest_5-shot_train_exp2.txt: -------------------------------------------------------------------------------- 1 | 5E20FDDE220C28.png 1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0 2 | DX.1.2.00289169000340072920191024080130260745031.png 1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0 3 | DX.1.2.840.113564.920101.20191114094545250690.1003000225002.png 1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 4 | DX.1.3.46.670589.26.802544.25.20191107.110816.307157.0.png 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 5 | 5E1D0C142D7887F.png 1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0 6 | 5E217CAC33D47EF.png 0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 7 | 5DCCA7B919B8304.png 0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 8 | DX.1.2.840.113619.2.369.4.2147483647.1573711535.69199.png 0,1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0 9 | 5E03FD1958E8EC6.png 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 10 | CR.1.2.156.600734.516764694.1648.1572660184.913.0.1.png 0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0 11 | 5D07B3FA1C08CBA.png 1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 12 | 5E02BE03636C1F5.png 1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 13 | 5E112E542F20901.png 1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0 14 | DX.1.2.392.200036.9125.4.0.487576953.2411357590.2795306561.png 1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 15 | DX.1.3.46.670589.26.802544.25.20191104.123508.306128.0.png 1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1 16 | CR.1.2.156.600734.516764694.1648.1571648198.5.0.1.png 1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 17 | DX.1.2.840.113619.2.369.4.2147483647.1573711535.69199.png 0,1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0 18 | DX.1.2.00310929000339866420191023103650183665000.png 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 19 | 5DF8332E3AE0F46.png 1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 20 | 5CAE969A14BCF85.png 1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0 21 | 5DC8AA202014FBC.png 0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0 22 | CR.1.2.156.600734.516764694.1648.1573954572.1983.0.1.png 0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 23 | DX.1.2.840.113619.2.369.4.2147483647.1572998387.240587.png 0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 24 | 5CAE969A14BCF85.png 1,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0 25 | 5C105E2B18D042B.png 1,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0 26 | 5DFC232E23F4EEA.png 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 27 | DX.1.2.0028395900034139492019110108363489877203.png 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 28 | 5D1AABFE47703FE.png 1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0 29 | 5D07B3FA1C08CBA.png 1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0 30 | DX.1.2.392.200036.9125.4.0.487536272.161441174.2795306561.png 1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0 31 | 5DD64E305B6C53D.png 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 32 | DX.1.2.840.113619.2.369.4.2147483647.1572240142.513122.png 1,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0 33 | 5E1FD9F04BE89ED.png 1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 34 | DX.1.2.392.200046.100.2.1.69131194618.191018160131.3.1.1.png 0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0 35 | CR.1.3.12.2.1107.5.3.57.20200.11.201911051501510390.png 0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0 36 | 5C6DEF531FD8975.png 0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0 37 | 5B8615F71FD4CB1.png 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 38 | 5C613091BD474B.png 0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 39 | DX.1.2.392.200036.9125.4.0.487576953.2411357590.2795306561.png 1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 40 | DX.1.2.392.200046.100.2.1.69131194618.191028165533.1.1.1.png 1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 41 | 5E1ADCE05680176.png 1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0 42 | CR.1.3.46.670589.26.602199.4.20191107.82425.334269.0.png 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 43 | CR.1.3.46.670589.26.602199.4.20191104.75625.334155.0.png 0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0 44 | CR.1.3.12.2.1107.5.3.57.20200.11.201911061601230203.png 1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0 45 | 5D8ADED64EC8E4B.png 1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0 46 | 5DE72B3529A8504.png 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 47 | 5C9ED2B81160958.png 1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0 48 | DX.1.2.00237211000340271820191025085318350253453.png 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 49 | 5E1D6EE9491CE2C.png 0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0 50 | 5B64EF90F78C30.png 0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0 51 | 5C98492C1E20AD8.png 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 52 | 5CB43BACF606F9.png 0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0 53 | 5D9D2AAA58FC310.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 54 | 5B42FF519E87FE.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 55 | DX.1.2.840.113619.2.369.4.2147483647.1573521973.612972.png 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0 56 | 5DDF87971070FEE.png 1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0,0 57 | 5CF728A22460CBA.png 1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 58 | 5D186BE94440AB.png 0,0,1,1,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0 59 | DX.1.2.840.113619.2.369.4.2147483647.1574036210.480417.png 1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0 60 | 5D122F394458D71.png 0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0 61 | 5D88278B428C238.png 0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0 62 | 5DFDBA945D5C7C7.png 1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 63 | 5D00525A96C81E.png 0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0 64 | DX.1.2.840.113619.2.369.4.2147483647.1573441772.587452.png 0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0 65 | 5E01D71A17640CE.png 1,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0 66 | 5E1EAE5E414C7F5.png 0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0 67 | CR.1.3.12.2.1107.5.3.57.20200.11.201910281049330328.png 0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0 68 | DX.1.2.392.200036.9125.4.0.487527527.2272486806.2795306561.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 69 | 5C22EDDD254408B.png 0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0 70 | 5DF97AB23788A98.png 1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1 71 | 5DF03CB738088AD.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 72 | DX.1.2.392.200046.100.2.1.69131194618.191106103603.2.1.1.png 0,0,0,1,1,0,0,1,1,0,0,0,1,0,1,0,0,0,0 73 | 5D2538F53EF005F.png 0,1,0,0,0,0,0,1,0,0,1,0,1,0,1,0,0,0,0 74 | DX.1.2.003080790003404763201910280813132513203.png 0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0 75 | DX.1.2.392.200036.9125.4.0.487561585.153642390.2795306561.png 0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0 76 | DX.1.2.392.200036.9125.4.0.487543916.1068721558.2795306561.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 77 | 5C18412B267CAC2.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 78 | DX.1.2.392.200036.9125.4.0.487586954.1972200854.2795306561.png 1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0 79 | 5AF949B1440523.png 1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 80 | DX.1.2.392.200036.9125.4.0.487578742.2265343382.2795306561.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 81 | CR.1.2.840.113564.199912075.2019111417420171237.1203801020003.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 82 | CR.1.3.12.2.1107.5.3.57.20200.11.201910200841010859.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 83 | CR.1.2.156.600734.516764694.1648.1571818379.173.0.1.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0 84 | 5E15814C5ED8140.png 1,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,0 85 | 5D38F7C73E28447.png 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0 86 | 5BE8E74320A0A98.png 0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0 87 | 5D155FD8330C1EB.png 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0 88 | 5D06F676254C3AA.png 1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,0 89 | 5C11C11B1184018.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 90 | 5C0B75D06D8C32.png 1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0 91 | DX.1.2.392.200036.9125.4.0.487527527.2272486806.2795306561.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 92 | CR.1.2.156.600734.516764694.1648.1572318439.601.0.1.png 0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 93 | DX.1.3.46.670589.26.802544.25.20191118.111243.310233.0.png 0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 94 | DX.1.3.46.670589.26.802544.25.20191104.123508.306128.0.png 1,0,1,1,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1 95 | 5CDCBE9918E0776.png 0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1 96 | -------------------------------------------------------------------------------- /data_backup/MedFMC/endo/endo_5-shot_train_exp3.txt: -------------------------------------------------------------------------------- 1 | 13333_2021.12_0009_56514302.png 1 1 0 0 2 | 13333_2021.09_0003_51743351.png 1 0 0 0 3 | 13333_2021.09_0003_51743353.png 1 1 0 0 4 | 13333_2021.09_0003_51743225.png 1 0 0 0 5 | 13333_2021.01_0003_41332353.png 1 0 0 0 6 | 13333_2021.01_0003_41583338.png 1 1 1 0 7 | 13333_2021.01_0003_41331736.png 1 1 1 0 8 | 13333_2021.01_0003_41583369.png 1 0 1 0 9 | 13333_2021.01_0003_41332418.png 1 0 0 0 10 | 13333_2021.01_0003_41583134.png 1 0 1 0 11 | 13333_2021.01_0005_41459203.png 1 0 0 0 12 | 13333_2021.04_0000_44779395.png 1 0 0 0 13 | 13333_2021.04_0000_44779422.png 1 0 0 0 14 | 13333_2021.04_0000_44779320.png 1 0 0 0 15 | 13333_2021.04_0000_44777725.png 1 0 0 0 16 | 13333_2021.04_0000_44777751.png 1 0 0 0 17 | 13333_2021.04_0000_44779319.png 1 0 0 0 18 | 13333_2021.12_0009_56515469.png 0 1 1 0 19 | 13333_2021.12_0009_56515337.png 0 1 1 0 20 | 13333_2021.12_0009_56514302.png 1 1 0 0 21 | 13333_2021.12_0009_56515464.png 0 1 0 0 22 | 13333_2021.12_0009_56515481.png 0 1 1 0 23 | 13333_2021.09_0001_51689916.png 1 1 0 0 24 | 13333_2021.09_0001_51689914.png 0 1 1 0 25 | 13333_2021.09_0001_51689915.png 0 1 0 0 26 | 13333_2021.01_0004_41724070.png 0 1 0 0 27 | 13333_2021.01_0004_41723550.png 0 1 0 0 28 | 13333_2021.01_0004_41723783.png 0 1 0 0 29 | 13333_2021.01_0004_41723893.png 0 1 0 0 30 | 13333_2021.01_0004_41723918.png 0 1 0 0 31 | 13333_2021.01_0004_41724033.png 0 1 0 0 32 | 13333_2021.01_0004_41724582.png 0 1 0 0 33 | 13333_2021.03_0002_42874388.png 0 1 1 0 34 | 13333_2021.03_0002_42874498.png 0 1 0 0 35 | 13333_2021.03_0002_42874496.png 0 1 0 0 36 | 13333_2021.03_0002_42874601.png 1 1 0 0 37 | 13333_2021.03_0002_42874062.png 1 1 0 0 38 | 13333_2021.03_0002_42874063.png 0 1 0 0 39 | 13333_2021.03_0002_42874087.png 1 1 0 0 40 | 13333_2021.03_0002_42874284.png 0 1 0 0 41 | 13333_2021.03_0002_42874016.png 1 1 1 0 42 | 13333_2021.03_0002_42874073.png 1 1 0 0 43 | 13333_2021.03_0002_42874571.png 0 1 0 0 44 | 13333_2021.03_0002_42874112.png 0 1 0 0 45 | 13333_2021.03_0002_42874082.png 0 1 0 0 46 | 13333_2021.03_0002_42874022.png 0 1 0 0 47 | 13333_2021.03_0002_42874298.png 0 1 0 0 48 | 13333_2021.03_0002_42874342.png 0 1 0 0 49 | 13333_2021.03_0002_42874297.png 0 1 0 0 50 | 13333_2021.03_0002_42874572.png 0 1 0 0 51 | 13333_2021.03_0002_42874558.png 0 1 0 0 52 | 13333_2021.03_0002_42874544.png 0 1 0 0 53 | 13333_2021.03_0002_42874326.png 0 1 1 0 54 | 13333_2021.03_0002_42874503.png 0 1 0 0 55 | 13333_2021.03_0002_42874461.png 0 1 0 0 56 | 13333_2021.03_0002_42874344.png 0 1 1 0 57 | 13333_2021.03_0002_42874028.png 1 1 0 0 58 | 13333_2021.03_0002_42874398.png 0 1 1 0 59 | 13333_2021.03_0002_42874173.png 1 1 0 0 60 | 13333_2021.03_0002_42874611.png 0 1 0 0 61 | 13333_2021.03_0002_42874287.png 0 1 0 0 62 | 13333_2021.03_0002_42874502.png 0 1 0 0 63 | 13333_2021.03_0002_42874504.png 0 1 0 0 64 | 13333_2021.03_0002_42874327.png 0 1 1 0 65 | 13333_2021.03_0002_42874568.png 0 1 0 0 66 | 13333_2021.03_0002_42874501.png 0 1 0 0 67 | 13333_2021.04_0003_44800992.png 0 1 0 0 68 | 13333_2021.04_0003_44800995.png 0 1 0 0 69 | 13333_2021.04_0003_44800997.png 0 1 0 0 70 | 13333_2021.04_0003_44800999.png 0 1 0 0 71 | 13333_2021.12_0007_57297515.png 0 0 1 0 72 | 13333_2021.12_0007_57297468.png 1 1 1 1 73 | 13333_2021.12_0007_57297464.png 1 1 1 0 74 | 13333_2021.12_0007_57297466.png 0 1 1 1 75 | 13333_2021.12_0007_57297475.png 0 1 1 1 76 | 13333_2021.12_0007_57297526.png 1 1 1 0 77 | 13333_2021.12_0007_57297433.png 1 1 1 0 78 | 13333_2021.12_0007_57297430.png 1 1 1 0 79 | 13333_2021.12_0007_57297524.png 0 0 1 0 80 | 13333_2021.09_0002_51747301.png 1 1 1 0 81 | 13333_2021.09_0002_51747297.png 1 0 1 1 82 | 13333_2021.09_0002_51747299.png 1 0 1 0 83 | 13333_2021.09_0002_51747298.png 0 1 1 0 84 | 13333_2021.01_0004_41724422.png 0 0 1 0 85 | 13333_2021.06_0000_48587044.png 0 0 1 0 86 | 13333_2021.06_0000_48586752.png 0 0 1 0 87 | 13333_2021.06_0000_48586737.png 0 0 1 0 88 | 13333_2021.04_0000_44779602.png 0 0 1 0 89 | 13333_2021.11_0002_54971866.png 1 0 0 1 90 | 13333_2021.12_0007_57297486.png 1 0 0 1 91 | 13333_2021.12_0007_57297468.png 1 1 1 1 92 | 13333_2021.12_0007_57297457.png 1 1 0 1 93 | 13333_2021.12_0007_57297477.png 1 0 0 1 94 | 13333_2021.12_0007_57297466.png 0 1 1 1 95 | 13333_2021.12_0007_57297475.png 0 1 1 1 96 | 13333_2021.12_0007_57297483.png 1 0 0 1 97 | 13333_2021.12_0007_57297448.png 1 0 0 1 98 | 13333_2021.12_0007_57297459.png 1 0 0 1 99 | 13333_2021.12_0007_57297470.png 1 1 0 1 100 | 13333_2021.12_0007_57297461.png 1 0 0 1 101 | 13333_2021.12_0007_57297450.png 1 0 0 1 102 | 13333_2021.12_0007_57297490.png 1 0 0 1 103 | 13333_2021.12_0007_57297481.png 1 0 0 1 104 | 13333_2021.12_0007_57297479.png 1 0 0 1 105 | 13333_2021.12_0007_57297455.png 1 0 0 1 106 | 13333_2021.12_0007_57297472.png 0 1 0 1 107 | 13333_2021.09_0001_51688951.png 1 0 0 1 108 | 13333_2021.09_0001_51688686.png 0 0 1 1 109 | 13333_2021.09_0001_51688679.png 0 0 1 1 110 | 13333_2021.09_0001_51688680.png 0 0 0 1 111 | 13333_2021.09_0001_51688677.png 0 0 1 1 112 | 13333_2021.09_0001_51688953.png 1 0 0 1 113 | 13333_2021.09_0001_51689179.png 1 0 0 1 114 | 13333_2021.09_0001_51688957.png 1 0 0 1 115 | 13333_2021.09_0001_51688927.png 0 0 0 1 116 | 13333_2021.09_0001_51689688.png 1 0 0 1 117 | 13333_2021.09_0001_51689649.png 1 0 0 1 118 | 13333_2021.09_0001_51688919.png 0 0 0 1 119 | 13333_2021.09_0001_51688961.png 0 0 0 1 120 | 13333_2021.09_0001_51688676.png 0 0 1 1 121 | 13333_2021.09_0001_51688920.png 0 0 0 1 122 | 13333_2021.09_0001_51688913.png 0 0 0 1 123 | 13333_2021.09_0001_51688916.png 0 0 0 1 124 | 13333_2021.09_0001_51689673.png 1 0 0 1 125 | 13333_2021.09_0001_51688684.png 0 0 1 1 126 | 13333_2021.09_0001_51688929.png 0 0 0 1 127 | 13333_2021.09_0001_51688673.png 0 0 0 1 128 | 13333_2021.09_0001_51688917.png 0 0 0 1 129 | 13333_2021.09_0001_51688685.png 0 0 0 1 130 | 13333_2021.09_0001_51689646.png 1 0 0 1 131 | 13333_2021.09_0001_51688926.png 0 0 0 1 132 | 13333_2021.09_0001_51688921.png 0 0 0 1 133 | 13333_2021.09_0001_51688678.png 0 0 1 1 134 | 13333_2021.09_0001_51688933.png 1 0 0 1 135 | 13333_2021.09_0001_51688934.png 0 0 0 1 136 | 13333_2021.09_0001_51688930.png 0 0 0 1 137 | 13333_2021.09_0001_51688928.png 0 0 0 1 138 | 13333_2021.09_0001_51688931.png 1 0 0 1 139 | 13333_2021.09_0001_51688936.png 1 0 0 1 140 | 13333_2021.09_0001_51688954.png 1 0 0 1 141 | 13333_2021.09_0001_51688952.png 1 0 0 1 142 | 13333_2021.09_0001_51688937.png 1 0 0 1 143 | 13333_2021.09_0001_51688670.png 0 0 0 1 144 | 13333_2021.09_0001_51688932.png 1 0 0 1 145 | 13333_2021.09_0001_51688674.png 0 0 0 1 146 | 13333_2021.09_0001_51688918.png 0 0 0 1 147 | 13333_2021.09_0001_51688881.png 0 0 0 1 148 | 13333_2021.09_0001_51688935.png 1 0 0 1 149 | 13333_2021.09_0001_51688956.png 1 0 0 1 150 | 13333_2021.09_0001_51688958.png 1 0 0 1 151 | 13333_2021.09_0001_51688687.png 0 0 1 1 152 | 13333_2021.09_0001_51688682.png 0 0 0 1 153 | 13333_2021.09_0001_51688949.png 1 0 0 1 154 | 13333_2021.09_0001_51688950.png 1 0 0 1 155 | 13333_2021.09_0001_51688959.png 1 0 0 1 156 | 13333_2021.09_0001_51689658.png 1 0 0 1 157 | 13333_2021.09_0001_51688672.png 0 0 0 1 158 | 13333_2021.09_0001_51688688.png 0 0 1 1 159 | 13333_2021.09_0001_51688681.png 0 0 1 1 160 | 13333_2021.09_0001_51688948.png 1 0 0 1 161 | 13333_2021.09_0001_51688675.png 0 0 1 1 162 | 13333_2021.09_0001_51688923.png 0 0 0 1 163 | 13333_2021.09_0001_51688924.png 0 0 0 1 164 | 13333_2021.09_0001_51689912.png 0 0 0 1 165 | 13333_2021.09_0001_51688925.png 0 0 0 1 166 | 13333_2021.09_0001_51688955.png 1 0 0 1 167 | 13333_2021.09_0001_51688669.png 0 0 0 1 168 | 13333_2021.09_0001_51688683.png 0 0 1 1 169 | 13333_2021.06_0000_48586898.png 0 0 0 1 170 | 13333_2021.10_0001_53188323.png 0 1 0 1 171 | 13333_2021.10_0001_53188324.png 0 1 0 1 172 | --------------------------------------------------------------------------------