2. Outline
● Why we visualize DAG?
● Background and Motivation
● Left Aligned ASCII DAG(Proposed Visualization)
● Result and Future Works
2
3. Outline
● Why we visualize DAG?
● Background and Motivation
● Left Aligned ASCII DAG(Proposed Visualization)
● Result and Future Works
3
4. DAG(Directed Acyclic Graph)?
● What is DAG?
○ Directed graph.
○ No loop.
● Why we visualize DAG?
○ Tensorflow’s computation graph == DAG
○ DAG is a machine learning core.
○ Have to review and debug DAG.
○ DAG is too long for reviewing it today.
4
5. Outline
● Why we visualize DAG?
● Background and Motivation
○ Development Flow
○ Long Dataflow
● Left Aligned ASCII DAG(Proposed Visualization)
● Result and Future Work
5
6. Agile: Development Flow
1. Check Requirement
2. Design the codes for the requirement.
3. Build and Test the codes
4. Review
a. Confirm the requirement.
b. Compare the changes of the code.
c. If it is OK, go to deployment.
5. Deploy
a. Merge the code
b. Apply the code for a production.
6
Req.
Design
Build
Deploy
Test
1 or 2 Weeks
Repeat small tasks.
9. Review: github flow known as Pull Request
9
We want to review the changes of
both the code and the dataflow on this UI.
Tensorboard can not show the changes of the dataflow.
11. Complex and Long Dataflow
11
AlexNet
GoogLeNet
Inception-V3
Inception-V4
These data from ICLR 2017:AN ANALYSIS OF DEEP NEURAL NETWORK MODELS FOR PRACTICAL APPLICATIONS
VGG is here.
12. Outline
● Why we visualize DAG?
● Background and Motivation
● Left Aligned ASCII DAG(Proposed Visualization)
○ Project Goal
○ Developed Visualization Tool
● Result and Future Work
12
13. Project Goal
● Make visualization-tool for DAG.
● The tool is available in current development flow.
○ Github flow : Pull Request.
● Compare the changes of DAG easily.
● Scalability of showing large dataflow.
13
14. Left Aligned DAG(Proposed Visualization)
● Feature
○ Use ASCII
○ Left Aligned
○ Compact 14
Proposed Visualization Graphviz(Conventional Visualization)
15. The changes of the codes in proposed visualization.
15
Original Insert
L8
Diff
16. Performance for large DAG: Inception-V3
16
Graphviz : 44 sec
Proposed method: 14sec
It looks nice?
17. Result And Future Works
● Make visualization-tool for DAG using ASCII.
○ Registered in PyPi.
○ https://pypi.org/project/stackeddag/
● Work with Pull Request together.
● Can show a large graph of dataflow.
● Using this on actual product/development flow is a
future work.
17
20. Rendering Algorithm
1. Get depth of nodes
2. Gen reversed DAG and Get reversed depth of nodes.
3. Order nodes by the depth.
4. If the depth is the same, order nodes by the reversed
depth.
5. If the reversed depth is the same, order nodes by the
label of nodes
6. Connect nodes by using ascii text.
20
30. Related Work for visualization of DAG
30
● Use Image
○ Tensorboard
○ tfGraphviz using graphviz
● Use Ascii
○ graph-easy
○ git
○ graphterm
○ leaf
These do not focus on the changes of codes.
36. graphterm
36
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
37. graphterm
37
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
o new node
38. leaf
38
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
39. Project Goal
● Make visualization-tool for DAG.
● The tool is available in current development flow.
○ Github flow : Pull Request.
● Compare the changes of DAG easily.
● Scalability of showing large dataflow.
39
If the visualization is ASCII,
we can solve the problems of both flow and changes.
41. Background
● Complex and Long Dataflow
● Want to use a visualization tool on today’s development flow.
○ We need a visualization tool for the dataflow.
● How to visualize Dataflow(As Conventional Method)
● Requirement of what we improve
○ reviewable
○ compact
○ fast
● Conventional Method
41
42. Goal
● Why Agile?
○ A project’s goal is always changed.
○ We have to keep
42
43. Outline
● What is a problem?
● Agile Development Flow
● Why we focus on a visualization of DAG? Why we use ASCII?
● Compare with other visualization.
● Left Aligned ASCII DAG
● About rendering algorithm
● Evaluation by using Google Inception V3
● Results and Future works
43
45. Compex and Long Dataflow
45
AlexNet
GoogLeNet
Inception-V3
Inception-V4
These data from ICLR 2017:AN ANALYSIS OF DEEP NEURAL NETWORK MODELS FOR PRACTICAL APPLICATIONS
VGG is here.
47. Agile
● Split large task into small tasks.
● One task takes short term.
● Pros
○ Keep the systems available
○ Can catch up the requirement quickly, when requirements are changed.
● Cons
○ Goal is not so clear.
■ Almost OSS like HTTP server do not have clear goal.
47
48. Practical Development flow for agile
1. Check a issue(== Requirement)
2. Design and make the codes for the issue
3. Build and Test with CI
4. Review
a. Confirm the issue
b. Compare the difference of the code.
c. If it is OK, go to deployment.
5. Deploy
a. Merge the code
b. Apply the code for a production.
48
Req.
Design
Build
Deploy
Test
1 or 2 Weeks
51. Review: github flow known as Pull Request
51
We want to review the code and the dataflow.
52. Requirement for our development flow
● Review the dataflow and the code by PullRequest-View/Tool.
● Compare the difference of the dataflow
● If the parts of dataflow are not changed, Do not show any difference.
52
53. Conventional Visualization of Datafllow
● Tensorboard
● tfgraphviz
● Review the dataflow and the code by PullRequest-View/Tool.
● Compare the difference of the dataflow
● Goal
○ Reviewable
■ Compare original graph with modified graph easily.
■ We need ascii graph.
○ Scalability
■ Google’s network has hundred layer of operations.
53
54. Related Work for visualization of DAG
54
● Use Image
○ Tensorboard
○ tfGraphviz using graphviz
● Use Ascii
○ graph-easy
○ git
○ graphterm
○ leaf
60. graphterm
60
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
61. graphterm
61
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
o new node
62. leaf
62
● Pros
○ We can compare
the difference by
diff-command.
● Cons
○ Not design with
diff-command.
63. Goal
● Make visualization-tool for DAG.
● The tool is available in current development flow.
○ Github flow : Pull Request.
● Compare the difference of DAG easily.
● Scalability of showing large dataflow.
63