April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
私たちのDeZeroは、今ではバックプロパゲーションで計算ができます。さらには、Define-by-Runという、実行時に計算の「つながり」を作る特徴を持ち合わせています。ここでは、今のDeZeroをより使いやすくするために、DeZeroの関数に対して3つの改善を行います。
これまで私たちは、DeZeroで使用する関数を「Pythonのクラス」として実装してきました。そのため、たとえばSquareクラスを使って計算を行うには、次のようなコードを書く必要がありました。
x=Variable(np.array(0.5))f=Square()y=f(x)
上記のように、2乗の計算を行うには、Squareクラスのインスタンスを生成し、そのインスタンスを呼び出すという2段階のステップを踏みます。しかし、使う側からしてみれば、この2段階の作業は少し手間です(y = Square()(x)とも書けますが、それも不格好です)。より好ましいのは、「Pythonの関数」として利用できることでしょう。そこで、次の実装を加えます。
defsquare(x):f=Square()returnf(x)defexp(x):f=Exp()returnf(x)
上記のように、squareとexpという2つの関数を実装しました。これで「DeZeroの関数」を「Pythonの関数」として利用できるようになります。ちなみに上のコードは、次のように1行で書くこともできます。
steps/step09.py
defsquare(x):returnSquare()(x)# 1行でまとめて書く
Read now
Unlock full access