逆引きPython

PythonでChainer-Variableオブジェクトを扱いたい

更新日:

PythonでChainer-Variableオブジェクトを扱いたい

Chainerとは、Preferred Networksが開発したニューラルネットワークを実装するためのライブラリです。Chainerを用いることで比較的容易にニューラルネットワークを実装することができます。ChainerはVariable、functionsなど複数のオブジェクトから構成されており、代表的なオブジェクトは以下の通りとなっています。

1 Variable
2 functions
3 links
4 Chain
5 optimazers

Variableはニューロンの値の配列を複数格納でき、ニューラルネットワークにおけるノードに対応するオブジェクトに使用されます。

Variableのイメージを掴むために、ここではVariableオブジェクトを用いて中学/高校初等レベルの簡単な計算をしてみます。

[mathjax] Variableオブジェクトを使用した簡単な計算①

Variableオブジェクトを使用して次のような計算をしていきます。

①xに値を設定する
\[
x=10
\]

②2次元方程式を計算する
\[
f(x)=2x^2+4x+1\\
\,\,=241
\]

③微分を計算する
\[
f'(x)=4x+4\\
\,\,=44
\]

ソースコード

 

ソースコードの詳細

Variableオブジェクトをインポートしています。
xに値を設定しています。xに10を設定しているのでprint文で10が表示されています。
2次元方程式を計算しています。計算結果はyに格納しています。計算の結果241と出力されています。
backwardを用いることにより、y→xと遡って微分値を求めることができます。微分した結果4x+4に対してx=10のため44が出力されています。

Variableオブジェクトを使用した簡単な計算 ②

複数まとめて計算することも可能です。前回はx=10としていましたが、x=1~10を同時に計算します。

上から値の設定、2次元方程式の計算結果、微分の計算結果となっています。
例えば10を設定した場合、10 241 44 となっており初めに計算した結果と同じになっています。

-逆引きPython
-

Copyright© AI人工知能テクノロジー , 2021 All Rights Reserved.