lp_nn_robustness_verification

This code base is intended to serve as a starting point for interested researchers or practitioners to extend or apply the robustness verification portion of the author's Master's thesis " GUM-compliant neural-network robustness verification".

https://github.com/bjoernludwigptb/lp_nn_robustness_verification

Science Score: 54.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
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

linear-programming neural-networks pyscipopt robustness-verification
Last synced: 4 months ago · JSON representation ·

Repository

This code base is intended to serve as a starting point for interested researchers or practitioners to extend or apply the robustness verification portion of the author's Master's thesis " GUM-compliant neural-network robustness verification".

Basic Info
  • Host: GitHub
  • Owner: BjoernLudwigPTB
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 2.09 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 5
Topics
linear-programming neural-networks pyscipopt robustness-verification
Created almost 3 years ago · Last pushed almost 3 years ago
Metadata Files
Readme Changelog License Citation

README.md

Neural network robustness verification via Linear Programming

pipeline status Latest Release DOI

This is the code written in conjunction with the second part of the author's Master's thesis on GUM-compliant neural network robustness verification. The code was written for Python 3.10.

The final submission date was 23. January 2023.

Getting started

The INSTALL guide assists in installing the required packages. After that you might want to have a look at our examples and/or the provided notebook to get a feeling for how to use the software.

Documentation

To locally build the HTML or pdf documentation first the required dependencies need to be installed into your virtual environment (check the INSTALL guide first and upon completion execute the following):

shell (venv) $ python -m piptools sync docs-requirements.txt (venv) $ sphinx-build docs/ docs/_build sphinx-build docs/ docs/_build Running Sphinx v5.3.0 loading pickled environment... done [...] The HTML pages are in docs/_build.

After that the documentation can be viewed by opening the file docs/_build/index.html in any browser.

Roadmap

  • check what improvements are made by switching to optimizable variables for the $r_i$ s

Disclaimer

This software is developed under the sole responsibility of Björn Ludwig (the author in the following). The software is made available "as is" free of cost. The author assumes no responsibility whatsoever for its use by other parties, and makes no guarantees, expressed or implied, about its quality, reliability, safety, suitability or any other characteristic. In no event will the author be liable for any direct, indirect or consequential damage arising in connection with the use of this software.

License

lpnnrobustness_verification is distributed under the MIT license.

Owner

  • Name: Björn Ludwig
  • Login: BjoernLudwigPTB
  • Kind: user
  • Location: Berlin, Germany
  • Company: Physikalisch-Technische Bundesanstalt

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: lp_nn_robustness_verification
message: >-
  If you use this software, please cite it using the provided metadata.
type: software
authors:
  - given-names: Björn
    family-names: Ludwig
    email: bjoern.ludwig@ptb.de
    affiliation: Physikalisch-Technische Bundesanstalt
    orcid: 'https://orcid.org/0000-0002-5910-9137'
repository-code: >-
  https://github.com/BjoernLudwigPTB/lp_nn_robustness_verification
repository: >-
  https://gitlab1.ptb.de/ludwig10_masters_thesis/lp_nn_robustness_verification
abstract: >-
  This code base is intended to serve as a starting point
  for interested researchers or practitioners to extend or
  apply the robustness verification portion of the author's
  Master's thesis " GUM-compliant neural-network robustness
  verification". It provides an implementation using
  PySCIPOpt in Python 3.10.
keywords:
  - robustness verification
  - linear programming
  - neural networks
  - pyscipopt
license: MIT
version: 0.8.0
identifiers:
  - description: >-
      This is the general DOI to cite all versions of the software. To cite a specific
      version, please check the README or the Zenodo webpage.
    type: doi
    value: "10.5281/zenodo.7551372"
references:
  - authors:
      - given-names: Stephen
        family-names: Maher
      - given-names: Matthias
        family-names: Miltenberger
      - given-names: Jo{\~{a}}o
        family-names: Pedroso
      - given-names: Pedro
        family-names: Pedroso
      - given-names: Daniel
        family-names: Rehfeldt
      - given-names: Robert
        family-names: Schwarz
      - given-names: Felipe
        family-names: Serrano
    title: >-
      PySCIPOpt: Mathematical Programming in Python with the SCIP Optimization Suite
    type: article
    doi: 10.1007/978-3-319-42432-3_37
    date-released: 2016-07-06
    repository: https://doi.org/10.1007/978-3-319-42432-3_37
    repository-code: https://github.com/scipopt/PySCIPOpt
  - authors:
      - given-names: Tanja
        family-names: Dorst
        affiliation: ZeMA gGmbH
        orcid: 'https://orcid.org/0000-0001-9756-9014'
      - given-names: Maximilian
        family-names: Gruber
        email: maximilian.gruber@ptb.de
        affiliation: Physikalisch-Technische Bundesanstalt
      - given-names: Anupam Prasad
        family-names: Vedurmudi
        email: anupam.vedurmudi@ptb.de
        affiliation: Physikalisch-Technische Bundesanstalt
    title: >-
      Sensor data set of one electromechanical cylinder at ZeMA
      testbed (ZeMA DAQ and Smart-Up Unit)
    type: data
    doi: 10.5281/zenodo.5185953
    date-released: 2021-09-10
    repository: https://doi.org/10.5281/zenodo.5185953
    repository-artifact: >-
      https://zenodo.org/record/5185953/files/axis11_2kHz_ZeMA_PTB_SI.h5?download=1
    license: CC-BY-4.0

GitHub Events

Total
Last Year

Dependencies

requirements.txt pypi
  • crlibm ==1.0.3
  • numpy ==1.24.1
  • pyinterval ==1.2.0
  • pyscipopt ==4.2.0
  • six ==1.16.0
  • wheel ==0.38.4
all-requirements.txt pypi
  • 170 dependencies
dev-requirements.txt pypi
  • astroid ==2.13.3 development
  • asttokens ==2.2.1 development
  • attrs ==22.2.0 development
  • backcall ==0.2.0 development
  • black ==22.12.0 development
  • certifi ==2022.12.7 development
  • cffconvert ==2.0.0 development
  • charset-normalizer ==3.0.1 development
  • click ==8.1.3 development
  • coverage ==7.0.5 development
  • crlibm ==1.0.3 development
  • decorator ==5.1.1 development
  • dill ==0.3.6 development
  • docopt ==0.6.2 development
  • exceptiongroup ==1.1.0 development
  • executing ==1.2.0 development
  • flake8 ==6.0.0 development
  • flake8-pyproject ==1.2.2 development
  • hypothesis ==6.63.0 development
  • idna ==3.4 development
  • iniconfig ==2.0.0 development
  • ipython ==8.8.0 development
  • isort ==5.11.4 development
  • jedi ==0.18.2 development
  • jsonschema ==3.2.0 development
  • lazy-object-proxy ==1.9.0 development
  • matplotlib-inline ==0.1.6 development
  • mccabe ==0.7.0 development
  • mypy ==0.991 development
  • mypy-extensions ==0.4.3 development
  • numpy ==1.24.1 development
  • packaging ==23.0 development
  • parso ==0.8.3 development
  • pathspec ==0.10.3 development
  • pexpect ==4.8.0 development
  • pickleshare ==0.7.5 development
  • platformdirs ==2.6.2 development
  • pluggy ==1.0.0 development
  • prompt-toolkit ==3.0.36 development
  • ptyprocess ==0.7.0 development
  • pure-eval ==0.2.2 development
  • pycodestyle ==2.10.0 development
  • pyflakes ==3.0.1 development
  • pygments ==2.14.0 development
  • pyinterval ==1.2.0 development
  • pykwalify ==1.8.0 development
  • pylint ==2.15.10 development
  • pyrsistent ==0.19.3 development
  • pyscipopt ==4.2.0 development
  • pytest ==7.2.1 development
  • pytest-cov ==4.0.0 development
  • pytest-custom-exit-code ==0.3.0 development
  • python-dateutil ==2.8.2 development
  • requests ==2.28.2 development
  • ruamel-yaml ==0.17.21 development
  • ruamel-yaml-clib ==0.2.7 development
  • six ==1.16.0 development
  • sortedcontainers ==2.4.0 development
  • stack-data ==0.6.2 development
  • tokenize-rt ==5.0.0 development
  • tomli ==2.0.1 development
  • tomlkit ==0.11.6 development
  • traitlets ==5.8.1 development
  • typing-extensions ==4.4.0 development
  • urllib3 ==1.26.14 development
  • wcwidth ==0.2.6 development
  • wheel ==0.38.4 development
  • wrapt ==1.14.1 development
docs-requirements.txt pypi
  • alabaster ==0.7.13
  • attrs ==22.2.0
  • babel ==2.11.0
  • beautifulsoup4 ==4.11.1
  • bleach ==5.0.1
  • certifi ==2022.12.7
  • charset-normalizer ==3.0.1
  • crlibm ==1.0.3
  • defusedxml ==0.7.1
  • docutils ==0.17.1
  • entrypoints ==0.4
  • fastjsonschema ==2.16.2
  • idna ==3.4
  • imagesize ==1.4.1
  • jinja2 ==3.1.2
  • jsonschema ==4.17.3
  • jupyter-client ==7.4.9
  • jupyter-core ==5.1.3
  • jupyterlab-pygments ==0.2.2
  • markdown-it-py ==2.1.0
  • markupsafe ==2.1.2
  • mdit-py-plugins ==0.3.3
  • mdurl ==0.1.2
  • mistune ==2.0.4
  • myst-parser ==0.18.1
  • nbclient ==0.7.2
  • nbconvert ==7.2.8
  • nbformat ==5.7.3
  • nbsphinx ==0.8.12
  • nest-asyncio ==1.5.6
  • numpy ==1.24.1
  • packaging ==23.0
  • pandocfilters ==1.5.0
  • platformdirs ==2.6.2
  • pygments ==2.14.0
  • pyinterval ==1.2.0
  • pyrsistent ==0.19.3
  • pyscipopt ==4.2.0
  • python-dateutil ==2.8.2
  • pytz ==2022.7.1
  • pyyaml ==6.0
  • pyzmq ==25.0.0
  • requests ==2.28.2
  • six ==1.16.0
  • snowballstemmer ==2.2.0
  • soupsieve ==2.3.2.post1
  • sphinx ==5.3.0
  • sphinx-rtd-theme ==1.1.1
  • sphinxcontrib-applehelp ==1.0.3
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==2.0.0
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.5
  • tinycss2 ==1.2.1
  • tornado ==6.2
  • traitlets ==5.8.1
  • typing-extensions ==4.4.0
  • urllib3 ==1.26.14
  • webencodings ==0.5.1
  • wheel ==0.38.4
examples-requirements.txt pypi
  • 101 dependencies
pyproject.toml pypi
  • numpy *
  • pyinterval *
  • pyscipopt *
release-requirements.txt pypi
  • appdirs ==1.4.4
  • bleach ==5.0.1
  • certifi ==2022.12.7
  • cffi ==1.15.1
  • charset-normalizer ==3.0.1
  • click ==8.1.3
  • click-log ==0.4.0
  • colorama ==0.4.6
  • crlibm ==1.0.3
  • cryptography ==39.0.0
  • docutils ==0.19
  • dotty-dict ==1.3.1
  • gitdb ==4.0.10
  • gitpython ==3.1.30
  • h5py ==3.7.0
  • idna ==3.4
  • importlib-metadata ==6.0.0
  • invoke ==1.7.3
  • jaraco-classes ==3.2.3
  • jeepney ==0.8.0
  • keyring ==23.13.1
  • more-itertools ==9.0.0
  • numpy ==1.24.1
  • packaging ==23.0
  • pkginfo ==1.9.6
  • pooch ==1.6.0
  • pycparser ==2.21
  • pygments ==2.14.0
  • pyinterval ==1.2.0
  • pyscipopt ==4.2.0
  • python-gitlab ==3.12.0
  • python-semantic-release ==7.33.0
  • readme-renderer ==37.3
  • requests ==2.28.2
  • requests-toolbelt ==0.10.1
  • rfc3986 ==2.0.0
  • secretstorage ==3.3.3
  • semver ==2.13.0
  • six ==1.16.0
  • smmap ==5.0.0
  • tomlkit ==0.11.6
  • tqdm ==4.64.1
  • twine ==3.8.0
  • urllib3 ==1.26.14
  • webencodings ==0.5.1
  • wheel ==0.38.4
  • zema-emc-annotated ==0.4.0
  • zipp ==3.11.0