Ariadne: Analysis for Machine Learning Program
Julian Dolby, Avraham Shinnar, Allison Allain, Jenna Reinen

TL;DR
Ariadne introduces static analysis tools for Python-based machine learning code, focusing on TensorFlow, to improve error detection and ensure scientific correctness.
Contribution
It develops a static analysis framework for Python machine learning code, including a tensor type system and data flow analysis, tailored for TensorFlow.
Findings
Initial implementation shows promise in detecting subtle errors.
Static analysis can improve correctness in scientific machine learning code.
Framework is adaptable for further development and integration.
Abstract
Machine learning has transformed domains like vision and translation, and is now increasingly used in science, where the correctness of such code is vital. Python is popular for machine learning, in part because of its wealth of machine learning libraries, and is felt to make development faster; however, this dynamic language has less support for error detection at code creation time than tools like Eclipse. This is especially problematic for machine learning: given its statistical nature, code with subtle errors may run and produce results that look plausible but are meaningless. This can vitiate scientific results. We report on Ariadne: applying a static framework, WALA, to machine learning code that uses TensorFlow. We have created static analysis for Python, a type system for tracking tensors---Tensorflow's core data structures---and a data flow analysis to track their usage. We…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
