Awesome
Introduction
This repository contains pytorch-lightning implementation of self-supervised and multi-modal learning benchmark on MIMIC-CXR as described in our paper: Radiology Reports Improve Visual Representations Learned from Radiographs. This repo is inspired by solo-learn.
Pipeline:
<img src="https://github.com/denizlab/MIMICCXR-MultiModal-SelfSupervision/blob/main/imgs/final.png" width="500" />Dependency:
Check out our dependency at ./requirements.txt and install with
pip install -r ./requirements.txt
Example Pretraining command:
You can get our pre-processed dataset at this GoogleDrive
To Run Pre-training, use commands as
python ./main_pretrain.py --batch_size 32 --gpus 4 --num_nodes 1 --max_epochs 25 \
--lr_backbone 1e-4 --lr_projector 1e-4 --img_backbone "resnet2d_50" --max_length 128 \
--features_dim 768 --img_embedding_dim 768 --weight_decay 0.1 --optimizer "adamw" \
--method "SLIP_SIMCLR" --save_dir "slip_saved" --two_transform --pretrained \
--seed 2022 --multi_modal "CLIP"
or
python ./main_pretrain.py --batch_size <batch_size> --gpus <num_gpu> --num_nodes <num_node> \
--max_epochs <num_epochs> --lr_backbone <backbone_learning_rate> --lr_projector <projector_learning_rate> \
--img_backbone <image_backbone_name> --max_length <text_tokenizer_length> --features_dim <feature_dimension> \
--img_embedding_dim <image_ebmedding_dimension> --optimizer <optimizer_name> --weight_decay <weight_decay> \
--method <train_method> --save_dir <save_directory> --two_transform --pretrained --seed <seed> \
--multi_modal <multi-modal method>
You can find all arguments in ./main_pretrain.py
Example finetuning command:
CheXpert
python ./downstream_eval/chexpert/train.py --model_load_path <path_to_weights> --batch_size <batch_size> \
--max_epoch <num_epoch> --save_suffix <suffix> --seed <seed> --train_percent <train_percentage>
NIH-ChestX-ray 14
python ./downstream_eval/chestxray14/train.py --model_load_path <path_to_weights> --model_name "resnet50" \
--batch_size <batch_size> --max_epoch <num_epoch> --save_suffix <suffix> --seed <seed> --train_percent <train_percentage> \
--method <train_method> --num_class 14
License
This repository is licensed under the terms of the GNU AGPLv3 license.
Reference
If you found this code useful, please cite our paper:
Radiology Reports Improve Visual Representations Learned from Radiographs, Medical Imaging with Deep Learning (MIDL) 2023.
@inproceedings{huang2023radiology,
title = {Radiology Reports Improve Visual Representations Learned from Radiographs},
author = {Haoxu Huang, Samyak Rawlekar, Sumit Chopra, Cem M Deniz},
booktitle = {Medical Imaging with Deep Learning (MIDL)},
year = {2023},
}