This is our official code repository for "AULUNet: An Adaptive Ultra-Lightweight UNet Framework for Efficient Skin Lesion Segmentation in Resource-Constrained Environments". It covers environment setup, installing dependencies, preparing datasets, and training and testing.
-
Create a Conda environment with Python 3.9:
conda create -n aulunet python=3.9 -y conda activate aulunet
-
Upgrade pip (optional, but recommended):
pip install --upgrade pip
-
Install dependencies from
requirements.txt:pip install -r requirements.txt
If conflicts occur, recreate or adjust package versions.
-
Install PyTorch with CUDA 12.2:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
This installs a PyTorch build (e.g., 2.5.1+cu121) compatible with CUDA 12.2.
-
Verify installation:
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"- Expected output includes a PyTorch version and
Truefor CUDA availability. - If
False, confirm you have correct NVIDIA drivers and CUDA.
- Expected output includes a PyTorch version and
Depending on your dataset, you may need additional preprocessing. For certain legacy dependencies (e.g., scipy==1.2.1), consider using a separate Python 3.7 environment:
conda create -n tool python=3.7 -y
conda activate tool
pip install h5py
conda install scipy==1.2.1
pip install pillow- Download from ISIC 2017 Challenge.
- Extract training and ground-truth folders into
/data/ISIC2017/. - Run:
python prepare_ISIC2017.py
- Download from ISIC 2018 Challenge.
- Extract training and ground-truth folders into
/data/ISIC2018/. - Run:
python prepare_ISIC2018.py
- Organize files as:
./custom_data/ ├── images/ │ ├── xx0.png │ ├── xx1.png ├── masks/ │ ├── xx0.png │ ├── xx1.png ├── prepare_custom_dataset.py - Adjust
prepare_custom_dataset.pyfor train, validation, and test split sizes. - Run:
python prepare_custom_dataset.py
Run the training script:
python train.py- By default, the training script may automatically run a test at the end of each epoch (or at final epochs). If you prefer to run tests separately or later, you can disable that section in
train.pyand usetest.pywhenever desired. - Outputs (logs, checkpoints, etc.) appear in
./results/.
If pretrained weights are needed, ensure you have them referenced in
train.pyor elsewhere.
- Update the checkpoint path in
test.py(e.g.,resume_model) to your trained model. - Run:
python test.py
- Outputs will be saved in
./results/.
Thank you to the ISIC 2017/2018 Challenge organizers and open-source community for sharing their repos.
Enjoy experimenting with AULUNet! If you encounter any issues, consider opening an issue or discussion in the repository.
