uncertainty-wizard

Uncertainty-Wizard is a plugin on top of tensorflow.keras, allowing to easily and efficiently create uncertainty-aware deep neural networks. Also useful if you want to train multiple small models in parallel.

https://github.com/testingautomated-usi/uncertainty-wizard

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.1%) to scientific vocabulary

Keywords

keras keras-tensorflow testing uncertainty uncertainty-neural-networks uncertainty-quantification

Keywords from Contributors

mesh interactive
Last synced: 6 months ago · JSON representation ·

Repository

Uncertainty-Wizard is a plugin on top of tensorflow.keras, allowing to easily and efficiently create uncertainty-aware deep neural networks. Also useful if you want to train multiple small models in parallel.

Basic Info
Statistics
  • Stars: 45
  • Watchers: 3
  • Forks: 6
  • Open Issues: 7
  • Releases: 9
Topics
keras keras-tensorflow testing uncertainty uncertainty-neural-networks uncertainty-quantification
Created about 5 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

UNCERTAINTY WIZARD

Documentation Status PyPI DOI

Best Paper Award at ICST 2021 - Testing Tool Track

Uncertainty wizard is a plugin on top of tensorflow.keras, allowing to easily and efficiently create uncertainty-aware deep neural networks:

  • Plain Keras Syntax: Use the layers and APIs you know and love.
  • Conversion from keras: Convert existing keras models into uncertainty aware models.
  • Smart Randomness: Use the same model for point predictions and sampling based inference.
  • Fast ensembles: Train and evaluate deep ensembles lazily loaded and using parallel processing - optionally on multiple GPUs.
  • Super easy setup: Pip installable. Only tensorflow as dependency.

Installation

It's as easy as pip install uncertainty-wizard

Requirements

uncertainty-wizard is tested on python 3.8 and recent tensorflow versions. Other versions (python 3.6+ and tensorflow 2.3+) should mostly work as well, but may require some mild tweaks.

Documentation

Our documentation is deployed to uncertainty-wizard.readthedocs.io. In addition, as uncertainty wizard has a 100% docstring coverage on public method and classes, your IDE will be able to provide you with a good amount of docs out of the box.

You may also want to check out the technical tool paper (preprint), describing uncertainty wizard functionality and api as of version v0.1.0.

Examples

A set of small and easy examples, perfect to get started can be found in the models user guide and the quantifiers user guide. Larger and examples are also provided - and you can run them in colab right away. You can find them here: Jupyter examples.

Authors and Papers

Uncertainty wizard was developed by Michael Weiss and Paolo Tonella at USI (Lugano, Switzerland). If you use it for your research, please cite these papers:

@inproceedings{Weiss2021FailSafe,  
  title={Fail-safe execution of deep learning based systems through uncertainty monitoring},
  author={Weiss, Michael and Tonella, Paolo},
  booktitle={2021 14th IEEE Conference on Software Testing, Verification and Validation (ICST)},
  pages={24--35},
  year={2021},
  organization={IEEE} 
}  

@inproceedings{Weiss2021UncertaintyWizard,  
  title={Uncertainty-wizard: Fast and user-friendly neural network uncertainty quantification},
  author={Weiss, Michael and Tonella, Paolo},
  booktitle={2021 14th IEEE Conference on Software Testing, Verification and Validation (ICST)},
  pages={436--441},
  year={2021},
  organization={IEEE}
}  

The first paper (preprint) provides an empricial study comparing the approaches implemented in uncertainty wizard, and a list of lessons learned useful for reasearchers working with uncertainty wizard. The second paper (preprint) is a technical tool paper, providing a more detailed discussion of uncertainty wizards api and implementation.

References to the original work introducing the techniques implemented in uncertainty wizard are provided in the papers listed above.

Contributing

Issues and PRs are welcome! Before investing a lot of time for a PR, please open an issue first, describing your contribution. This way, we can make sure that the contribution fits well into this repository. We also mark issues which are great to start contributing as as good first issues. If you want to implement an existing issue, don't forget to comment on it s.t. everyone knows that you are working on it.

Owner

  • Name: testingautomated-usi
  • Login: testingautomated-usi
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0

message: "If you use this software, please cite it as below."
type: software
authors:
  - given-names: Michael
    family-names: Weiss
    email: michael.weiss@usi.ch
    affiliation: Università della Svizzera italiana
    orcid: 'https://orcid.org/0000-0002-8944-389X'
  - given-names: Paolo
    family-names: Tonella
    email: paolo.tonella@usi.ch
    affiliation: Università della Svizzera italiana
    orcid: 'https://orcid.org/0000-0003-3088-0339'
identifiers:
  - type: doi
    value: 10.5281/zenodo.5121368
    description: The software archived on zenodo
  - type: doi
    value: 10.5281/zenodo.4651517
    description: The talk given when presenting the software
  - type: doi
    value: 10.1109/ICST49551.2021.00056
    description: The published paper
title: >-
  Uncertainty-wizard: Fast and user-friendly neural
  network uncertainty quantification
doi: 10.5281/zenodo.5121368
date-released: 2020-12-18
url: "https://github.com/testingautomated-usi/uncertainty-wizard"
repository: 'https://zenodo.org/record/5121368'
repository-artifact: 'https://pypi.org/project/uncertainty-wizard/'
license: MIT
preferred-citation:
  type: article
  authors:
  - given-names: Michael
    family-names: Weiss
    email: michael.weiss@usi.ch
    affiliation: Università della Svizzera italiana
    orcid: 'https://orcid.org/0000-0002-8944-389X'
  - given-names: Paolo
    family-names: Tonella
    email: paolo.tonella@usi.ch
    affiliation: Università della Svizzera italiana
    orcid: 'https://orcid.org/0000-0003-3088-0339'
  doi: "10.1109/ICST49551.2021.00056"
  journal: "2021 14th IEEE Conference on Software Testing, Verification and Validation (ICST)"
  month: 4
  start: 436 # First page number
  end: 441 # Last page number
  title: "Uncertainty-Wizard: Fast and User-Friendly Neural Network Uncertainty Quantification"
  year: 2021

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 77
  • Total Committers: 2
  • Avg Commits per committer: 38.5
  • Development Distribution Score (DDS): 0.195
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Michael Weiss c****e@m****h 62
dependabot[bot] 4****] 15
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 7
  • Total pull requests: 96
  • Average time to close issues: 12 months
  • Average time to close pull requests: 20 days
  • Total issue authors: 3
  • Total pull request authors: 2
  • Average comments per issue: 0.43
  • Average comments per pull request: 1.14
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 82
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • MiWeiss (5)
  • tobwen (1)
  • Siyuluan (1)
Pull Request Authors
  • dependabot[bot] (80)
  • MiWeiss (14)
Top Labels
Issue Labels
bug (3) good first issue (2) enhancement (1) documentation (1)
Pull Request Labels
dependencies (80)

Dependencies

docs/docs_requirements.txt pypi
  • recommonmark *
  • setuptools *
  • sphinx *
requirements.txt pypi
  • tensorflow >=2.3.0
test_requirements.txt pypi
  • autoflake ==1.4 test
  • black ==22.3.0 test
  • coverage ==6.0.2 test
  • docstr-coverage ==2.2.0 test
  • flake8 ==4.0.1 test
  • isort ==5.10.1 test
  • jupyterlab ==3.1.4 test
.github/workflows/examples.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2-beta composite
  • actions/setup-python v2 composite
.github/workflows/lint.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2-beta composite
  • actions/setup-python v2 composite
.github/workflows/unit_tests.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2-beta composite
  • actions/setup-python v2 composite