mxnet中Symbol API 總結《-》

Symbol API 這個包主要是用於提供神經網絡的圖和自動求導, 一個symbol代表具有多個輸出的符號表達,它們是經過運算符和神經網絡層的複合,或者矩陣運算。一個運算能取多個輸入變量,產生不只一個輸出變量,並且還有內部的靜態變量,

一個變量或者是作爲另一個symbol的輸出,或者是後面bind value來用的。

比如

a = mx.sym.Variable('a')
b = mx.sym.Variable('b')
c = 2 * a + b

# 前面可當作是抽象運算,下面才傳入數據。並指明用的是cpu還是gpu
e = c.bind(mx.cpu(), {'a': mx.nd.array([1,2]), 'b':mx.nd.array([2,3])})

y = e.forward()

這時候輸出 y的話是空,需要這樣纔可以。y[0].asnumpy()  

Symbol相當於是符號式編程,需要在feed數據之後纔會執行,而ndarray是命令式的。

Symbol class 中基本上有類似於ndarray中的所有運算。

比如常見的:


和常見的




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章