
Theano - 矩陣乘法表達式
我們將計算兩個矩陣的點積。第一個矩陣的維度是 2 x 3,第二個矩陣的維度是 3 x 2。我們用作輸入的矩陣及其乘積在此處表示 -
$$\begin{bmatrix}0 & -1 & 2\\4 & 11 & 2\end{bmatrix} \:\begin{bmatrix}3& -1 \\1 & 2 \\35 & 20 \end{bmatrix}=\begin{bmatrix}11 & 0 \\35 & 20 \end{bmatrix}$$宣告變數
要為上述內容編寫 Theano 表示式,我們首先宣告兩個變數來表示我們的矩陣,如下所示 -
a = tensor.dmatrix() b = tensor.dmatrix()
dmatrix 是雙精度矩陣的型別。請注意,我們沒有在任何地方指定矩陣大小。因此,這些變數可以表示任何維度的矩陣。
定義表示式
要計算點積,我們使用了名為 dot 的內建函式,如下所示 -
c = tensor.dot(a,b)
乘法的輸出分配給一個名為 c 的矩陣變數。
定義 Theano 函式
接下來,我們像在前面示例中那樣定義一個函式來計算表示式。
f = theano.function([a,b], c)
請注意,函式的輸入是兩個矩陣型別的變數 a 和 b。函式輸出分配給變數 c,該變數將自動為矩陣型別。
呼叫 Theano 函式
我們現在使用以下語句呼叫函式 -
d = f([[0, -1, 2], [4, 11, 2]], [[3, -1],[1,2], [6,1]])
上述語句中的兩個變數是 NumPy 陣列。您可以像此處顯示的那樣顯式定義 NumPy 陣列 -
f(numpy.array([[0, -1, 2], [4, 11, 2]]), numpy.array([[3, -1],[1,2], [6,1]]))
計算 d 後,我們列印其值 -
print (d)
您將在輸出上看到以下輸出 -
[[11. 0.] [25. 20.]]
完整程式列表
The complete program listing is given here: from theano import * a = tensor.dmatrix() b = tensor.dmatrix() c = tensor.dot(a,b) f = theano.function([a,b], c) d = f([[0, -1, 2],[4, 11, 2]], [[3, -1],[1,2],[6,1]]) print (d)
此處顯示程式執行的螢幕截圖 -

廣告