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中的所有運算。
比如常見的:
和常見的