chainer.ChainList

class chainer.ChainList(*links)[source]

オブジェクトライクなインタフェースを持つコンポーザブル(=構成/組み換え可能な)Link.

 

これは、もうひとつの構成Linkの例です。 Chainとは異なり、このクラスは子Linkのリストの用に用いることが可能です。各子Linkは非負の整数によってインデクスされ、登録された子Linkの現在の番号を管理します。 add_link() メソッドはリストの末端に新しいLinkを挿入します。これは、任意の数の子LinkをもつChain、たとえば任意の深さの多層パーセプトロンを記述するのに有用です。

 

すべての listのメソッドを実装しているわけではないことは、留意してください。

 

Parameters: links – 初期 子Link 

 

 

Methods

__getitem__(index)[source]

与えられたインデクスの子を返す。

 

Parameters: index (int) – 子Linkのリスト中のインデクス
Returns: The index-th child link.
Return type: Link

 

__len__()[source]

子の数を返す。

 

__iter__()[source]

子Linkを登録し、Listの末尾に加える。

 

Parameters: link (Link) – 登録するLinkオブジェクト

 

add_param(name, shape=None, dtype=<type 'numpy.float32'>, initializer=None)[source]

ParameterをLinkに登録する。

 

Deprecated since version v2.0.0:
init_scope() 内でParameter オブジェクトを直接属性に割り当ててください。.
例えば、下記のコードですが
link.add_param('W', shape=(5, 3))

 

下記のように書き換えが可能です。

with link.init_scope():

link.W = chainer.Parameter(None, (5, 3))

 

IDEs が属性の型を追跡するには、後者のほうが簡単です。

 

Parameters:
  • name (str) – Parameterの名称。この名称は属性の名称にも用いられる。
  • shape (int or tuple of ints) – Parameter配列の形(Shape) 。省略された場合、Parameter変数は初期化されないまま。
  • dtype – Parameter 配列のデータ型
  • initializer –Noneが設定されていない場合、データは与えられた初期化子で初期化されます。初期化子が配列だった場合、データは直接その配列で初期化されます。 呼び出し可能な場合は、重みの初期化子とshちえ用いられます。これらのケースでは、dtype 引数は無視されますので、注意してください。

 

add_persistent(name, value)[source]

永続値をLinkに登録する。

 

登録された値は保存され、シリアル化とでシリアル化ではロードされます。この値はLinkの属性に設定されます。

Parameters:
  • name (str) – 永続値の名称。この名称は属性の名称としても用いられる。
  • value – 登録される値

 

addgrads(link)[source]
append(link)[source]

 子Linkを登録し、リストの末尾に加える。

 

これは add_link().と同じです。

このメソッドは list インタフェースをエミュレートするために加えられました。

Parameters: link (Link) –登録するLinkオブジェクト

 

children()[source]
cleargrads()[source]

勾配配列を全てクリアする。

 

このメソッドは逆方向の計算の最適化の繰り返しの前に毎回呼び出されるはずです。

 

copy()[source]
copyparams(link)[source]
disable_update()[source]

Link階層下の全てのParameterの更新ルールを無効化する。

 

このメソッドは各Parameter変数の更新ルールの enabled フラグに Falseを設定します。

 

enable_update()[source]

Link階層下の全てのParameterの更新ルールを有効化する。

 

このメソッドは各Parameter変数の更新ルールの enabledフラグに Trueを設定します。

 

init_scope(*args, **kwds)[source]

 初期化スコープを作成する。

 

このメソッドはParameter(とChainのLink)の割当による登録を可能にするコンテキスト・マネージャ・オブジェクトを返します。Parameter オブジェクトはこのコンテキスト・マネージャ下で、属性に割り当てることで自動的に登録されます。

 

Example

殆どの場合、Parameter登録はinitializer メソッドによって行われます。. init_scope メソッドを用い、 Parameter オブジェクトを登録するLinkへ、簡単に割り当てることができます


class MyLink(chainer.Link):
def __init__(self):
super().__init__()
with self.init_scope():
self.W = chainer.Parameter(0, (10, 5))
self.b = chainer.Parameter(0, (5,))
namedparams(include_uninit=True)[source]
params(include_uninit=True)[source]
register_persistent(name)[source]

与えられた名前の属性を永続値として登録する。

 

これは、永続値として存在している属性を快適に登録するメソッドです。 name が既にParameterとして登録されている場合、このメソッドはそれをParameter名のリストから削除し、永続値として再登録します。

Parameters: name (str) – 登録される属性の名称

 

serialize(serializer)[source]
to_cpu()[source]
to_gpu(device=None)[source]
zerograds()[source]

 全ての勾配配列を0で初期化する。

このメソッドはcleargradsと同じ目的で使用できますが、非効率になります。
このメソッドは後方互換性のために残されています。

v1.15以降では非推奨:
かわりにcleargrads()をお使いください。

 

Attributes

update_enabled

少なくとも1つのパラメータが有効な更新ルールを持つ時True

within_init_scope

現在のコードが初期化スコープの内側であるときTrue 。

初期化スコープの詳細はinit_scope() をご覧ください。

 

xp

このLinkへの配列モジュール。

 

CPUとGPUどちらのLinkがオンになっているかによって、 プロパティは numpy か cupyを返す。