# Ariadne: Analysis for Machine Learning Program

arXiv: https://arxiv.org/abs/1805.04058 · HTML: https://mlsanity.com/paper/1805.04058/

## Key facts

- Cited by 4 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 10 May 2018.

## Built on by (most cited first, 4 of 4)

- [A Static Analyzer for Detecting Tensor Shape Errors in Deep Neural Network Training Code](https://mlsanity.com/paper/2112.09037/) (2021)
- [SpecDetect4ML: Detecting Non-Local ML Code Smells with Code Property Graphs](https://mlsanity.com/paper/2509.20491/) (2025)
- [Serenity: Library Based Python Code Analysis for Code Completion and Automated Machine Learning](https://mlsanity.com/paper/2301.05108/) (2023)
- [Speculative Automated Refactoring of Imperative Deep Learning Programs to Graph Execution](https://mlsanity.com/paper/2504.05424/) (2025)

## Abstract (arXiv)

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 report on how it was built and present some early results.
