Functionを FunctionNodeでラップするAdapterクラス。
While FunctionNode は新しいスタイルの微分可能関数を提供しますが、今のところ旧スタイルの Function も後方互換性のために使用が可能です。
このクラスはそれらのインタフェースのアダプタを提供しています。このクラスは、委譲することによって、 FunctionNode インタフェースを Function オブジェクトに加えます。
Parameters: | function (Function) – ラップするFunction オブジェクト |
---|
Version 3.0.0の新機能です。
Methods
関数フックを登録します。
Parameters: |
|
---|
出力変数を計算し計算グラフを発展させる。
基本的な動作はFunctionNodeのドキュメントに記載されています。
Parameters: | inputs – 入力Variableのタプル。各エレメントは以下のどれでも良い。 Variable、numpy.ndarray, cupy.ndarray。このエレメントが 単体のndarrayだった場合、自動的に Variableでラップされる。 |
---|---|
Returns: | 出力 Variable オブジェクトのタプル。 |
特定の入力について勾配を計算し、それらを累算する。
このメソッドは複数のFunctionが同じVariableに対して適用された場合に、後方への計算と勾配の累算を融合する方法を提供します。
ユーザはこのメソッドか backward()をオーバーライドする必要があります。たいてい backward() を実装するほうがシンプルですし、効率的な勾配累算を提供する必要がない場合には、推奨されています。
Parameters: |
|
---|---|
Returns: |
特定の入力Variableに対する勾配を表すVariableのタプル backward()と異なり、タプルの長さは |
入力されたNumPy配列から、出力配列を計算する。(*訳注:CPUで順伝播)
Parameters: | inputs – 入力する numpy.ndarray オブジェクトのタプル. |
---|---|
Returns: | 出力配列のタプル。各要素は NumPy もしくは CuPy 配列をとり得る。 |
入力した CuPy arraysから出力配列を計算する。(*訳注:GPUで順伝播)
Parameters: | inputs – cupy.ndarray オブジェクトのタプル。 |
---|---|
Returns: | 出力配列のタプル。各要素は NumPy もしくは CuPy 配列をとり得る。 |
保持されている入力Variableのタプルを返す。
このメソッドは forward()で保持されている入力Variableを取得するのに用いられます。
Returns: | 保持されている入力Variableのタプル |
---|
保持されている出力Variableのタプルを返す。
このメソッドは forward()で保持されている出力Variableを取得するのに用いられます。
Returns: |
保持されている出力Variableのタプル |
---|
指定した入力VariableNodeにデータ配列を保持させる。
このメソッドを forward() から呼び出すことで、このFunctionNodeは逆伝播に必要な入力を明示することができます。この保持された配列を持つ入力Variablesは get_retained_inputs() によって backward()から取得することが可能です。
Functionとは異なり、このFunctionNodeは デフォルトでは入力配列を保持しません。もしいくつかの配列もしくは配列全てを保持したいなら、このメソッドを呼び出すことを忘れないでください。
このメソッドをforward メソッドの外側から呼び出してはいけませんので、注意してください。
Parameters: | indexes (iterable of int) –Functionが逆伝播に必要としない入力Variableのインデクス |
---|
指定した出力VariableNodeにデータ配列を保持させる。
このメソッドを forward() から呼び出すことで、このFunctionNodeは逆伝播に必要な出力を明示することができます。このメソッドが呼び出された場合、どの出力Variableもapply()から戻ったポイントのデータ配列を保持するためのマークをしません。保持された配列を持つ出力Variablesは get_retained_outputs() によって backward()から取得可能です。
このメソッドをforward メソッドの外側から呼び出してはいけませんので、注意してください。
Parameters: | indexes (iterable of int) – Functionが逆伝播に必要としない入力Variableのインデクス |
---|
入出力ノードとこのFunctionNode自身をグラフから消去する。
Attributes
このAdapterがラッピングしている Function オブジェクト
登録された関数フックの辞書を整理する。
chainer.thread_local.function_hooksと比べると、そちらはその要素を全てのFunctionに登録します。
このプロパティの関数フックは、このFunctionに特化されています。
保持している出力配列のタプル。
このプロパティは、主にFunctionによって用いられます。ユーザは基本的にこのプロパティを使用する必要はありません。かわりにget_retained_outputs()をご利用ください。