April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
現状のDeZeroには問題があります。その問題は、同じ変数を繰り返し使う場合に発生します。たとえば図14-1のように、y = add(x, x)という計算を考えてみます。
図14-1 y = add(x, x)の計算グラフ
私たちのDeZeroは、図14-1のように同じ変数を使って足し算を行うと、正しく微分が求められません。試しに、どのような結果になるのか実際に見てみましょう。
x=Variable(np.array(3.0))y=add(x,x)('y',y.data)y.backward()('x.grad',x.grad)
実行結果
y 6.0 x.grad 1.0
ここではx=3.0として足し算を行いました。このとき、yの値は6.0で、これは正しい結果です。しかしxの微分(x.grad)は1.0となり、誤った結果になります。正しくは、
のとき、
より、その微分はとなります。
Read now
Unlock full access