Machine Learning in Python with No Strings Attached
Machine-learning frameworks in Python, such as scikit-learn, Keras, Spark, or Pyro, use embedded domain specific languages (EDSLs) to assemble a computational graph. Unfortunately, these EDSLs make heavy use of strings as names for computational graph nodes and other entities, leading to repetitive and hard-to-maintain code that does not benefit from standard Python tooling. This paper proposes eliminating strings where possible, reusing Python variable names instead. We demonstrate this on two examples from opposite ends of the design space: Keras.na, a light-weight wrapper around the Keras library, and , a new embedding of Stan into Python. Our techniques do not require modifications to the underlying library. Avoiding strings removes redundancy, simplifies maintenance, and enables Python tooling to better reason about the code and assist users.
Sat 22 JunDisplayed time zone: Tijuana, Baja California change
09:00 - 11:00 | |||
09:00 40mTalk | Building Training Sets with Snorkel: Three Key Operators MAPL | ||
09:40 40mTalk | Machine Learning in Python with No Strings Attached MAPL Guillaume Baudart IBM Research, Martin Hirzel IBM Research, Kiran Kate , Louis Mandel IBM Research, Avraham Shinnar IBM Research | ||
10:20 40mTalk | Triton: An Intermediate Language and Compiler for Tiled Neural Network Computations MAPL |