Skip to content

Commit b258c12

Browse files
wangkuiyiYang Yang
authored andcommitted
Update dynamic_graph.md
1 parent 712ddda commit b258c12

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

doc/survey/dynamic_graph.md

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
1-
# Automatical Differentiation with the Tape
1+
# Automatic Differentiation with the Tape
22

3-
The implementation of automatical differentiation (AD) lies at the heart of differentiable programming. As the dynamic graph approach gains its popularity in the past a few years, this doc surveys the backward implementations of two ML frameworks: Pytorch and Dynet.
3+
## Automatic Differentiation
44

5-
Outline
6-
1. The implementation overview
7-
1. The design choices between four frameworks
8-
1. What can fluid learn from them
5+
A key challenge in the field of deep learning is to automatically derive the backward pass from the forward pass described algorithmically by researchers. Such a derivation, or a transformation of the forward pass program, has been long studied before the recent prosperity of deep learning in the field known as [automatic differentiation](https://arxiv.org/pdf/1502.05767.pdf).
96

10-
## Implementation Overview
7+
## The Tape
8+
9+
Given the forward pass program (usually in Python in practices), there are two strategies to derive the backward pass:
10+
11+
1. from the forward pass program itself, or
12+
1. from the execution trace of the forward pass program, which is often known as the *tape*.
13+
14+
This article surveys systems that follow the latter strategy.
15+
16+
## Dynamic Network
17+
18+
When we train a deep learning model, the tape changes every iteration as the input data change, so we have to re-derive the backward pass every iteration. This is known as *dynamic network*.
19+
20+
Deep learning systems that utilize the idea of dynamic network gained their popularities in recent years. This article surveys two representative systems: [PyTorch](https://pytorch.org/) and [DyNet](https://dynet.readthedocs.io/en/latest/).
21+
22+
## An Overview
1123

1224
Both frameworks record a ‘tape’ of the computation and interpreting (or run-time compiling) a transformation of the tape played back in reverse. This tape is a different kind of entity than the original program.[[link]](http://www.bcl.hamilton.ie/~barak/papers/toplas-reverse.pdf)
1325

0 commit comments

Comments
 (0)