This repository contains a library for performing coverage guided fuzzing of neural networks, as was described in this paper. It's still a prototype, but the ultimate goal is for people to actually use this to test real software. Any suggestions about how to make it more useful for that purpose would be appreciated.
You ought to be able to run the code in this repository by doing the following:
pip install -r requirements.txt
Then do:
export PYTHONPATH="$PYTHONPATH:$HOME/tensorfuzz"
Broadly speaking, this repository contains a core fuzzing library, examples of how to use the fuzzer, a list of bugs found with the fuzzer, and some utilities.
This directory contains bugs or weird behaviors that we've found by using this tool.
This directory contains examples of how to use the fuzzer in several different ways. It contains examples of looking for numerical errors, finding broken loss functions in publicly available code, and checking for disagreements between trained classifiers and their quantized versions.
This directoy contains the fuzzing engine and all the necessary utils.
This directory contains code written by other people and the (potentially updated) LICENSES for that code.
This is not an officially supported Google product.