Home

Awesome

<!-- PROJECT LOGO --> <br /> <p align="center"> <a href="#"><img src="assets/Banner.svg" alt="Logo"/></a> <h3 align="center">A Practical Debugging Tool for Training Deep Neural Networks</h3> <p align="center"> Experiments </p> </p> <p align="center"> <a href="https://github.com/f-dangel/cockpit">Cockpit Package</a> • <a href="https://cockpit.readthedocs.io/">Docs</a> • <a href="LICENSE.txt">License</a> </p>

Experiments

To showcase the capabilities of Cockpit we performed several experiments illustrating the usefulness of our debugging tool in our paper. The code for all experiments, as well as the generated data is presented in this repository. For a discussion of those experiments please refer to our paper.

We provide an overivew of all experiments here, splitting them up in experiments that are presented in the main body of our paper and ones that are shown in the appendix.

All necessary requirements (besides Cockpit) can be found in requirements.txt

If you decide to re-run the code, you may want to delete the ~/temp/data_deepobs directory, that will be created to share the data sets among experiments, afterwards.

All experiments include some run.py file to reproduce the results. Our original results are also stored in each experiment folder in a results.zip file. The plot.py script produces the Figures shown in the paper.

ExperimentDescription
01_benchmarkBenchmark the run time of individual instruments and configurations of Cockpit.<br>Reproduces Figure 6 and 13-17.
02_LINEIllustrative Example of why just monitoring the loss is not enough.<br>Reproduces Figure 1.
03_scalar_deepConcrete example why just monitoring the loss is not enough.<br>Reproduces Figure 11.
04_benchmark_memoryBenchmark the memory consumption of the histograms.<br>Reproduces Figure 12.
06_preprocessingStudy how incorrectly scaled data is represented in Cockpit.<br>Reproduces Figure 3 and 10.
07_learning_rate_selectionGrid search the learning rate and compare the alpha values vs. final performance.<br>Reproduces Figure 5.
09_layerwiseAnalyzing the layerwise histogram for two different architectures.<br>Reproduces Figure 4.
10_showcaseShowcase of the full Cockpit for DeepOBS problems.<br>Reproduces Figure 2 and 19.
11_histogram2dBenchmark the performance of different implementations for computing the 2D Histogram.<br>Reproduces Figure 18.
12_alpha_explanationIllustrative plot explaining the Alpha Quantity.<br>Reproduces Figure 8.

Main Text Experiments

Figure 1: Loss is not Enough - 02_LINE

Loss is not Enough

Figure 2: Showcase - 10_showcase

Showcase CIFAR-100

Figure 3: Misscaled Data - 06_preprocessing

Misscaled Data

Figure 4: Layerwise Histogram - 09_layerwise

Layerwise Histogram

Figure 5: Tuning the Learning Rate with Alpha - 07_learning_rate_selection

Median Alpha vs Performance

Figure 6: Run Time Benchmark - 01_benchmark

Run Time Benchmarks

Appendix Experiments

Figure 7 is not included in this list, as it is a code example. The code is an adapted version of the basic and advanced examples from the examples directory and the documentation.

Figure 8: Motivational Sketch for Alpha - 12_alpha_explanation

Alpha Explanation

Figure 10: Misscaled Data ImageNet - 06_preprocessing

Misscaled Data

Figure 11: Regularization Detection - 03_scalar_deep

Regularization Detection

Figure 12: Memory Consumption Histogram - 04_benchmark_memory

Memory Benchmarks

Figure 13 - 17: Additional Run Time Benchmarks - 01_benchmark

Figure 18: Implementation Performance 2D Histogram - 11_histogram2d

Performance Histogram

Figure 19: Additional Showcases - 10_showcase

Showcase MNIST LogReg Showcase Quadratic Deep