Deep Learning with Dynamic Computation Graphs
arXiv:1702.02181
Abstract
Neural networks that compute over graph structures are a natural fit for problems in a variety of domains, including natural language (parse trees) and cheminformatics (molecular graphs). However, since the computation graph has a different shape and size for every input, such networks do not directly support batched training or inference. They are also difficult to implement in popular deep learning libraries, which are based on static data-flow graphs. We introduce a technique called dynamic batching, which not only batches together operations between different input graphs of dissimilar shape, but also between different nodes within a single input graph. The technique allows us to create static graphs, using popular libraries, that emulate dynamic computation graphs of arbitrary shape and size. We further present a high-level library of compositional blocks that simplifies the creation of dynamic graph models. Using the library, we demonstrate concise and batch-wise parallel implementations for a variety of models from the literature.
Published as a conference paper at ICLR 2017
Cited by in corpus (8)
- DyNet: The Dynamic Neural Network Toolkit
- Adaptive Graph Convolutional Neural Networks
- AMPNet: Asynchronous Model-Parallel Training for Dynamic Neural Networks
- On-the-fly Operation Batching in Dynamic Computation Graphs
- Combining Convolution and Recursive Neural Networks for Sentiment Analysis
- Learning Graph While Training: An Evolving Graph Convolutional Neural Network
- Cavs: A Vertex-centric Programming Interface for Dynamic Neural Networks
- Effective Approaches to Batch Parallelization for Dynamic Neural Network Architectures