Thursday, December 14, 2017

PyTorch():計算圖

PyTorch():計算圖

2017/12/14


施工中...


-----


必須先講一講計算圖的概念,計算圖出現在Bengio 09年的“學習AI的深層架構”,Bengio使用了有向圖結構來描述神經網絡的計算:

三十分钟理解计算图上的微积分:Backpropagation,反向微分 - CSDN博客
http://blog.csdn.net/xbinworld/article/details/56523063


-----


我們從計算圖(computational graph)的理論開始,因為神經網絡本身是計算圖的一個特殊形式。Computational graph 是有向圖,其中的節點都對應著 操作(Operation) 或者 變量(Variable)。Variable 可以把自己的值遞送給 Operation,而 Operation 可以把自己的輸出遞送給其他的 Operation。這樣的話,計算圖中的每一個節點都定義了 graph 中的 Variable 的一個函數(本句意義可以參照“函數”的定義,大意為一種輸入對應一種輸出)。 遞送入節點的、從節點中傳出的值,被稱為 tensor,這是個用於多維數組的詞。因此,它包括標量、矢量、矩陣,也包括高階的張量(tensor)。

零基础深度学习Part I:计算图 - 集智专栏
https://jizhi.im/blog/post/deep_learning_from_scratch_1

Deep Learning From Scratch I  Computational Graphs - deep ideas
http://www.deepideas.net/deep-learning-from-scratch-i-computational-graphs/


-----


近期各大框架發展的趨勢主要有兩個,一個是增加對動態圖計算的支持,另一個是在主編程語言上適應廣大用戶的需求。最近比較火熱的動態計算圖相關的框架主要有 DyNet、PyTorch 和 TensorFlow Fold,就是圍繞著這其中一個點或兩個點進行的。

但是不管是 DyNet 還是 PyTorch,沒有解決多結構輸入問題的高效計算。面對新老對手的挑戰,TensorFlow 作為深度學習框架界的霸主也不能無動於衷,終於給出了自己關於動態計算圖高效計算的答案 — TensorFlow Fold。

以靜制動的TensorFlow Fold動態計算圖介紹_iNeews
http://www.ineews.com/zh-tw/57575/


-----


Calculus on Computational Graphs  Backpropagation -- colah's blog
http://colah.github.io/posts/2015-08-Backprop/


Deep Learning From Scratch I  Computational Graphs - deep ideas
http://www.deepideas.net/deep-learning-from-scratch-i-computational-graphs/


PyTorch, Dynamic Computational Graphs and Modular Deep Learning
https://medium.com/intuitionmachine/pytorch-dynamic-computational-graphs-and-modular-deep-learning-7e7f89f18d1


Visualization of Computational Graph — Chainer 3.2.0 documentation
http://docs.chainer.org/en/stable/reference/graph.html


-----

PPT


http://www.cs.cornell.edu/courses/cs5740/2017sp/lectures/04-nn-compgraph.pdf


http://www.cedar.buffalo.edu/~srihari/CSE676/6.5%20ComputationalGraphs.pdf



-----


AI從頭學(一0):Automatic Differentiation
http://hemingwang.blogspot.tw/2017/02/aiautomatic-differentiation.html

-----



References

No comments: