TF-Coder: Program Synthesis for Tensor Manipulations
arXiv:2003.09040 · doi:10.1145/3517034
Abstract
The success and popularity of deep learning is on the rise, partially due to powerful deep learning frameworks such as TensorFlow and PyTorch that make it easier to develop deep learning models. However, these libraries also come with steep learning curves, since programming in these frameworks is quite different from traditional imperative programming with explicit loops and conditionals. In this work, we present a tool called TF-Coder for programming by example in TensorFlow. TF-Coder uses a bottom-up weighted enumerative search, with value-based pruning of equivalent expressions and flexible type- and value-based filtering to ensure that expressions adhere to various requirements imposed by the TensorFlow library. We train models to predict TensorFlow operations from features of the input and output tensors and natural language descriptions of tasks, to prioritize relevant operations during search. TF-Coder solves 63 of 70 real-world tasks within 5 minutes, sometimes finding simpler solutions in less time compared to experienced human programmers.
Published in ACM Transactions on Programming Languages and Systems (TOPLAS) with presentation at PLDI 2022
References in corpus (9)
- Neural Architecture Search with Reinforcement Learning
- On the difficulty of training Recurrent Neural Networks
- DeepCoder: Learning to Write Programs
- RobustFill: Neural Program Learning under Noisy I/O
- FrAngel: Component-Based Synthesis with Control Structures
- Just-in-Time Learning for Bottom-Up Enumerative Synthesis
- Program Synthesis using Abstraction Refinement
- Synthetic Datasets for Neural Program Synthesis
- Sketch-Driven Regular Expression Generation from Natural Language and Examples