disaster-uda-models / README.md
abalhomaid's picture
Upload README.md with huggingface_hub
89420f0 verified
---
license: mit
language: en
tags:
- domain-adaptation
- disaster-assessment
- resnet50
- image-classification
- unsupervised-domain-adaptation
datasets:
- abalhomaid/disaster-damage-assessment
---
# UDA Disaster Damage Assessment - Model Weights
Pre-trained model weights for reproducing the experiments in:
> **Unsupervised Domain Adaptation for Rapid Disaster Damage Assessment**
These checkpoints reproduce Tables 1-6 in the paper.
## Models Included
| Model | Count | Description |
|-------|-------|-------------|
| ResNet50 (source-only) | 12 | State dict files for all 12 source-target domain pairs |
| CDAN | 36 | 12 tasks x 3 seeds (SWD=0) |
| CORAL | 36 | 12 tasks x 3 seeds (SWD=0) |
| MMD | 36 | 12 tasks x 3 seeds (SWD=0) |
| DANN | 36 | 12 tasks x 3 seeds (SWD=0) |
| AWDAN (best) | 36 | 12 tasks x 3 seeds (best SWD config per task, selected by max F1) |
| **Total** | **192 files** | **~19.8 GB** |
## Domains
| Domain | Code | Event | Images |
|--------|------|-------|--------|
| Ecuador Earthquake | E | 2016 | 1,724 |
| Nepal Earthquake | N | 2015 | 19,102 |
| Hurricane Matthew | M | 2016 | 333 |
| Typhoon Ruby | R | 2014 | 833 |
All 12 source-to-target combinations (E2M, E2N, E2R, M2E, M2N, M2R, N2E, N2M, N2R, R2E, R2M, R2N) are evaluated with seeds {2, 32, 128}.
## Download
```bash
pip install huggingface_hub
huggingface-cli download abalhomaid/disaster-uda-models --local-dir .
```
This places files into the correct directory structure expected by the evaluation scripts.
## File Structure
```
models/resnet50/c4/
{S}_{T}_model_epoch_best_statedict.pth # Source-only baseline (12 files)
train_jobs/cdan/logs/{model}/seed_{seed}/
Damage_{S}2{T}_SWD_{swd}_trade_offs_{to}/
checkpoints/best.pth # DA model checkpoint
```
Where `{model}` is one of: `cdan`, `coral`, `mmd`, `dann`.
## Usage
Clone the reproduction repository and download the weights:
```bash
git clone https://github.com/abalhomaid/disaster-assesment.git
cd disaster-assesment
git checkout reproducibility
# Download model weights
huggingface-cli download abalhomaid/disaster-uda-models --local-dir .
# Set up evaluation environment
conda env create -f tllib_metric.yaml
conda activate tllib_metric
pip install -e .
# Evaluate a model (e.g., DANN E->M, seed=32)
PYTHONPATH="$PWD:$PWD/examples/domain_adaptation/image_classification" \
python examples/domain_adaptation/image_classification/dann.py \
data/damage -d Damage -s E -t M -a resnet50 --seed 32 --scratch \
--log train_jobs/cdan/logs/dann/seed_32/Damage_E2M_SWD_0_trade_offs_1 \
--phase test
```
See the [repository README](https://github.com/abalhomaid/disaster-assesment/tree/reproducibility) for full reproduction instructions.
## Expected Results (Table 5 Averages)
| Model | Accuracy | Precision | Recall | F1 |
|-------|----------|-----------|--------|-----|
| Source-only | 75.2 | 84.1 | 70.0 | 75.6 |
| CDAN | 81.0 | 83.6 | 83.1 | 83.2 |
| CORAL | 79.5 | 82.2 | 81.7 | 81.8 |
| MMD | 81.1 | 83.8 | 83.0 | 83.2 |
| DANN | 80.6 | 83.9 | 81.9 | 82.7 |
| **AWDAN** | **81.9** | 83.9 | **85.0** | **84.2** |
## Architecture
All models use ResNet50 backbone with 2-class output (damage / no damage), input size 224x224.
- **Source-only**: Standard ResNet50 fine-tuned on source domain only
- **DANN/CDAN**: ResNet50 + domain discriminator (adversarial DA)
- **CORAL/MMD**: ResNet50 + divergence minimization (domain generalization)
- **AWDAN**: DANN + Sliced Wasserstein Distance regularization in label space