Test suite: Metamorphic testing to detect implementation bugs.
ML is notoriously hard to test as an error in the output of a model can be due to:

  - not enough data
  - model architecture not suitable
  - implementation error in the framework

We want to ensure that the last one doesn't happen. While we can test individual layers with the numerical gradient, some parts are hard to check, for example the optimizer.

The paper [Identifying Implementation Bugs in Machine Learning Based
Image Classifiers using Metamorphic Testing](https://arxiv.org/pdf/1808.05353.pdf) introduces metamorphic testing, i.e. checking that input1-->output1 and input2-->output2 transformations through the model is keeping some mathematical invariant.