The official implementation of MedShift: Implicit Conditional Transport for X-Ray Domain Adaptation.
Francisco Caetano1, Christiaan Viviers1, Peter H.N. de With1, Fons van der Sommen1
¹ Eindhoven University of Technology
You will need:
python(seepyproject.tomlfor full version)GitMake- a
.secretsfile with the required secrets and credentials - load environment variables from
.env NVIDIA Drivers(mandatory) andCUDA >= 12.6(mandatory if Docker/Apptainer is not used)Weights & Biasesaccount
Clone this repository (requires git ssh keys)
git clone --recursive git@github.com:caetas/MedShift.git
cd MedShift
Create a .secrets file and add your Weights & Biases API Key:
WANDB_API_KEY = <your-wandb-api-key>
Create the image using the provided Dockerfile
docker build --tag medshift .
Or download it from the Hub:
docker pull docker://ocaetas/medshift
Then run the script job_docker.sh that will execute main.sh:
cd scripts
bash job_docker.sh
To access the shell, please run:
docker run --rm -it --gpus all --ipc=host --env-file .env -v $(pwd)/:/app/ medshift bash
Convert the Docker Image to a .sif file:
apptainer pull medshift.sif docker://ocaetas/medshift
Then run the script job_apptainer.sh that will execute main.sh:
cd scripts
bash job_apptainer.sh
To access the shell, please run:
apptainer shell --nv --env-file .env --bind $(pwd)/:/app/ medshift.sif
Add the flag --nvccli if you are using WSL.
Note: Edit the main.sh script if you want to train a different model.
Create the Conda Environment:
conda env create -f environment.yml
conda activate python3.11
And then setup all virtualenv using make file recipe
(python3.11) $ make setup-all
You might be required to run the following command once to setup the automatic activation of the conda environment and the virtualenv:
direnv allow
Feel free to edit the .envrc file if you prefer to activate the environments manually.
You can setup the virtualenv by running the following commands:
python -m venv .venv-dev
.venv-dev/Scripts/Activate.ps1
python -m pip install --upgrade pip setuptools
python -m pip install -r requirements/requirements.txt
To run the code please remember to always activate both environments:
conda activate python3.11
.venv-dev/Scripts/Activate.ps1
The dataset should be downloaded here. Unzip the dataset and move the folders to data/raw.
In addition to the instructions for using Docker or Apptainer, the documentation for training is available here: TRAINING.md.
The pretrained model can be downloaded here.
The instructions to run and evaluate the models are available in INFERENCE.md.
This project is licensed under the terms of the MIT license.
See LICENSE for more details.
If you publish work that uses SymmFlow, please cite SymmFlow as follows:
Will be added later.