Theano-行列乗算の式

2つの行列の内積を計算します。最初の行列は次元2x 3で、2番目の行列は次元3 x2です。入力として使用した行列とその積は次のように表されます。

$$ \ 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式を書くために、最初に次のように行列を表す2つの変数を宣言します。

a = tensor.dmatrix()
b = tensor.dmatrix()

dmatrixは、doubleの行列のタイプです。マトリックスサイズはどこにも指定しないことに注意してください。したがって、これらの変数は任意の次元の行列を表すことができます。

式の定義

内積を計算するために、と呼ばれる組み込み関数を使用しました dot 次のように-

c = tensor.dot(a,b)

乗算の出力は、と呼ばれる行列変数に割り当てられます。 c

Theano関数の定義

次に、前の例のように関数を定義して、式を評価します。

f = theano.function([a,b], c)

関数への入力は、行列タイプの2つの変数aとbであることに注意してください。関数出力は変数に割り当てられますc これは自動的にマトリックスタイプになります。

Theano関数の呼び出し

次のステートメントを使用して関数を呼び出します-

d = f([[0, -1, 2], [4, 11, 2]], [[3, -1],[1,2], [6,1]])

上記のステートメントの2つの変数は、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)

プログラム実行のスクリーンショットをここに示します-