Skip to main content

keras-adf: Assumed Density Filtering (ADF) Probabilistic Neural Networks

Documentation Status CI Status Code Coverage Code Style: Black

keras-adf provides implementations for probabilistic Tensorflow/Keras neural network layers, which are based on assumed density filtering. Assumed density filtering (ADF) is a general concept from Bayesian inference, but in the case of feed-forward neural networks that we consider here it is a way to approximately propagate a random distribution through the neural network.

The layers in this package have the same names and arguments as their corresponding Keras version. We use Gaussian distributions for our ADF approximations, which are described by their means and (co-)variances. So unlike the standard Keras layers, each keras-adf layer takes two inputs and produces two outputs (one for the means and one for the (co-)variances).

keras-adf layers can be used exactly like the corresponding Keras layers within a Keras model. However, as mentioned above, ADF layers take two inputs and produce two outputs instead of one, so it is not possible to simply mix ADF and standard layers within the same model.

from tensorflow.keras import Input, Model
from kerasadf.layers import Dense

in_mean = Input((10,))
in_var = Input((10,))
out_mean, out_var  = Dense(10, activation="relu")([in_mean, in_var])
model = Model([in_mean, in_var], [out_mean, out_var])

The Overview and Examples sections of our documentation provide more realistic and complete examples.

Project Information

keras-adf is released under the MIT license, its documentation lives at Read the Docs, the code on GitHub, and the latest release can be found on PyPI. It’s tested on Python 2.7 and 3.4+.

If you’d like to contribute to keras-adf you’re most welcome. We have written a short guide to help you get you started!

Further Reading

Additional information on the algorithmic aspects of keras-adf can be found in the following works:

  • Jochen Gast, Stefan Roth, “Lightweight Probabilistic Deep Networks”, 2018

  • Jan Macdonald, Stephan Wäldchen, Sascha Hauch, Gitta Kutyniok, “A Rate-Distortion Framework for Explaining Neural Network Decisions”, 2019

Acknowledgments

During the setup of this project we were heavily influenced and inspired by the works of Hynek Schlawack and in particular his attrs package and blog posts on testing and packaing and deploying to PyPI. Thank you for sharing your experiences and insights.

Metadata

Release files for keras-adf 19.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for keras-adf 19.1.0
File Size Uploaded
keras-adf-19.1.0.tar.gz 38.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for keras-adf 19.1.0
File Interpreter ABI Platform
keras_adf-19.1.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 56.3 kB

Release files / keras-adf-19.1.0.tar.gz

Download URL keras-adf-19.1.0.tar.gz
Size 38.1 kB
Tags Source
SHA-256 checksum
How to use checksums
cfdd91fc7f37629a037a9bf0e0a792e8a553e22ac8b345e4f0dd6c55d8e56de6
BLAKE2b-256 checksum
How to use checksums
557868f8426c0ea5368a343ea71e37894fa6809f7e4f54addf10dd74473a2998
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191101 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

Release files / keras_adf-19.1.0-py2.py3-none-any.whl

Download URL keras_adf-19.1.0-py2.py3-none-any.whl
Size 18.2 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
898afc18c67fd38e606c25fa5533524649bcb99233151a614047548b193f7894
BLAKE2b-256 checksum
How to use checksums
beb743604a663daafc26a0ea1e98e941e08af0669cbf120808c0e2bf04036a22
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0.post20191101 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

Release history Release notifications | RSS feed

This release

19.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page