バックワード計算グラフでVariableを表しているノード。
このオブジェクトは計算グラフにおけるVariableノードを表しています。このノードは、誤差逆伝播(=バックプロパゲーション)で各Functionが通過する勾配を決定します。
1つのVariable nodeは、それに対応するVariable オブジェクトに保持されていて、ユーザによって管理されます。InputとしてVariableをとるFunction オブジェクト もVariableノードへの参照を保持しています。
このノードは対応する一般的なデータ配列への参照を保持するものではありませんので注意してください。データ配列は下記のような場合、ノードからアクセス可能です。
ユーザは、通常VariableNodeオブジェクトに触れる必要はありません。Chainerによって計算グラフは自動的に管理され、ユーザにとって有益なインタフェースはVariableによって提供されています。
Parameters: | |
---|---|
Variables: |
|
Methods
対応する Variable オブジェクトを返す。
VariableNode オブジェクトはVariable オブジェクトへの弱い参照を持ちます。この参照が生きているとき、プロパティを返します。そうでなければこのプロパティがノードオブジェクトから新しいVariableオブジェクトを作成して返します。
Returns: |
ノードから参照されているVariable オブジェクト |
---|---|
Return type: | Variable |
ノードに元になるデータ配列への参照を持たせる。
このメソッドは対応するVariableからデータ配列を取得して保持します。対応するVariableへの弱い参照が死んだとき、エラーを発生させます。
このノードを生成した Functionオブジェクトをセットする。
このメソッドは self.creator = creator を設定することと同じです。. A FunctionNodeオブジェクトも渡すことができます。
Parameters: | creator (Function or FunctionNode) – Function that has created this variable. |
---|
このノードを生成した FunctionNodeオブジェクトをセットする。
このメソッドは self.creator_node = creator_node を設定することと同じです。.ノードオブジェクトが設定されている場合は、Function オブジェクトを渡すことが可能です。
Parameters: | creator_node (FunctionNode or Function) – Function node that has this variable as an output. |
---|
Deletes the reference to the creator of this このVariableノードのcreatorへの参照を削除します。
このメソッドは self.creator_node = Noneを設定することと同じです。
Attributes
このVariable nodeを生成したFunctionオブジェクト。
Functionが旧スタイルのAPIによって実装されているとき(つまり Function
クラスが用いられるとき)、このプロパティは、その Function オブジェクトを返します。このオブジェクトがFunctionAdapter
オブジェクトから抽出されるとき、返されたオブジェクトは FunctionNode
ではなく、代わりに逆伝播と順伝播の実際の実装になります。
Functionが新しいスタイルのAPIによって実装されているとき(つまりFunctionNode クラスが用いられるとき)、このプロパティはFunctionNodeオブジェクトを返します、この場合、返されるオブジェクトはcreator_nodeと同様です。
creator = v.creator
v.creator = None
...
v.creator = creator
大事なのは、 FunctionNode
オブジェクトは計算グラフでFunctionの代わりにノードとして用いられるということで、各 Function オブジェクトはそれに対応するFunctionNode
に弱い参照を保持しているだけだということです。creatorは Functionオブジェクトを返すので、保存しているcreaterでFunctionNode
オブジェクトは保持されません。
creator_node = v.creator_node
v.creator_node = None
...
v.creator_node = creator_node
出力としてVariableを持つFunction ノード
FunctionNode
について詳しくは、リンク先の定義をお読みください
対応するVariableのデータ配列。
このデータが利用可能でない場合、 None
を返す。
対応するVariableの勾配配列。
この変数が利用可能でない場合は、 None
を返す。
対応するVariableの勾配変数
対応するVariable が利用可能ではない場合 None
を返す。
Variable ノードを 表す短いテキスト(ラベル)。
逆方向への計算にgradをセットするかどうか指示する。