質問: Variable(x) print F.sum(a * x) ``` Numpyだとちゃんと計算されるのですが、 Variableに変換するとサイズが合わないと怒られてしまいます。 どのようなコードを書けば、 numpyとChainerで同じ結果を返すことができるでしょうか? よろしくお願いします。
回答: `chainer.functions.batch_matmul`を使います。 ``` >>> print(a*x) [[ 10. 20. 30.] [ 400. 500. 600.] [ 7000. 8000. 9000.]] >>> print(sum(a*x)) [ 7410. 8520. 9630.] >>> print(F.batch_matmul(a, x, transb=True).data) [[[ 10. 20. 30.]] [[ 400. 500. 600.]] [[ 7000. 8000. 9000.]]] >>> print(sum(F.batch_matmul(a, x, transb=True).data)) [[ 7410. 8520. 9630.]] >>> print(F.sum(F.batch_matmul(a, x, transb=True).data), axis=0).data) # sumもchainer側で行うには [[ 7410. 8520. 9630.]] ``` a*xおよび和のベクトルが計算できていることがわかります。