April 2020
Intermediate to advanced
552 pages
6h 13m
Japanese
現在のDeZeroは、微分を自動で求めることはできますが、それは1階微分に限られます。ここでは、2階微分を自動で求められるように――さらには、3階微分、4階微分、...と高階微分を求められるように――、DeZeroを拡張していきます。
DeZeroを使って2階微分を求めるには、現在のバックプロパゲーションの実装を根本から見直す必要があります。DeZeroのバックプロパゲーションの基盤は、VariableとFunctionクラスで行われています。そこで、まずはVariableとFunctionの2つのクラスについて、現状の実装を簡単に振り返ります。これからの話は少し長くなるので、3つの節に分けて確認作業を行います。
最初に、Variableクラスのインスタンス変数について復習します。まずは、Variableクラスの初期化を行う __init__メソッドだけを抜き出して示します。
classVariable:def__init__(self,data,name=None):ifdataisnotNone:ifnotisinstance(data,np.ndarray):raiseTypeError('{} is not supported'.format(type(data)))self.data=dataself.name=nameself.grad=Noneself.creator=Noneself.generation=0...
上のとおり、Variableクラスはいくつかのインスタンス変数を持ちます。ここでは、その中の ...
Read now
Unlock full access