Skip to content

Latest commit

 

History

History
69 lines (52 loc) · 1.73 KB

README.md

File metadata and controls

69 lines (52 loc) · 1.73 KB

FIDO Algorithm with improved Concrete Dropout

Installation

Install the requirements via pip

python -m pip install -r requirements.txt

or with conda:

conda install torch~=1.13 torchmetrics~=0.7 torchvision~=0.14 matplotlib

Usage

import sys
sys.path.insert(0, "<path to this repo>/src")
import numpy as np
import torch as th

from fido.module import FIDO
from fido import configs as fido_configs

clf = ... # your model
im = dataset[0] # image from your dataset

with th.no_grad():
    predicted_class = clf.predict(im[None])[0].argmax()

optimized = True # setting it to True enables our improved implementation

mask_config = fido_configs.MaskConfig(mask_size=None,
                                      infill_strategy="blur",
                                      optimized=optimized)

fido = FIDO.new(im, mask_config, device=im.device)

fido_config = fido_configs.FIDOConfig(
    learning_rate=1e1,
    iterations=30,
    batch_size=8,
    l1=1e-3, tv=1e-2
)
fido.fit(im, predicted_class, clf, config=fido_config)

print(fido.ssr_logit_p)
print(fido.sdr_logit_p)

License

This work is licensed under a GNU Affero General Public License.

AGPLv3

Citation

You are welcome to use our code in your research! If you do so please cite it as:

@inproceedings{Korsch23:SCD,
    author = {Dimitri Korsch and Maha Shadaydeh and Joachim Denzler},
    booktitle = {German Conference on Pattern Recognition (GCPR)},
    title = {Simplified Concrete Dropout - Improving the Generation of Attribution Masks for Fine-grained Classification},
    year = {2023},
}