class chainer.links.Bias(axis=1, shape=None)[source]

学習可能なパラメータのブロードキャストされた要素(エレメント)ごとの総和。

 

  bias() 関数の2番めの入力が、linkが持つ学習可能なバイアスパラメータb であることを除外して、要素ごとの総和を計算する。

 

 

Parameters:
  • axis (int) – 2番めの入力が適用された bias() 関数の1番目の入力の第1軸 。
  • shape (tuple of ints) – 学習可能なバイアスパラメータのShape。 None,の場合、このリンクは学習可能なパラメータを持たないので、 この__call__ メソッドの2番めの入力に、明示的なバイアスが与えられる必要がある。
See also

詳細は bias() もお読みください。

Variables: b (Variable) –  shape が与えられている場合、バイアスパラメータ。それ以外の場合は、属性を持たない。

 

 

Methods

__call__(*xs)[source]

ブロードキャストされた要素ごとの総和を適用する。

Parameters: xs (list of Variables) – 入力変数 。このlinkが学習可能なバイアスパラメータを持っている場合、この入力変数の長さは1になり、それ以外では2になる。

 

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

linkにパラメータを登録する。

 


 version v2.0.0以降、
非推奨: 代わりに、 Parameter オブジェクトを init_scope() で直接Attributeに割り当ててください。

 

例えば、
link.add_param('W', shape=(5, 3)) 
は下記のように書き換えられます。
with link.init_scope():

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

後者のほうが、IDEがattributeの型の追跡が容易です。

 

Parameters:
  • name (str) – パラメータ名。この名前は. attribute 名としても使用される。
  • shape (int or tuple of ints) –パラメータ配列の Shape。この値が省略された場合、パラメータ変数は初期化されないままになる。 
  • dtype – パラメータ配列のデータ・タイプ。
  • initializer – Noneでなければ、このデータは与えられた初期化子で初期化される。 この値が配列の場合は、データは直接その値によって初期化される。 この値が呼び出し可能である場合、荷重初期化子として用いられる。これらのケースにおいては、 dtype 引数は無視されることに注意。

 

add_persistent(name, value)[source]

永続値をlinkに登録する。

 

登録された値は保存され、シリアル化と逆シリアル化する際にロードされる。この値はこのリンクのattributeにセットされる。

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

 

addgrads(link)[source]

与えられたlinkから勾配値を累積する。

 

このメソッドは、与えられたlinkの各勾配配列 を、このリンクの対応する勾配配列に加える。この累算は、ホストと異なるデバイス間でも行われる。

Parameters: link (Link) – ソース link オブジェクト

 

children()[source]

すべての子linkのジェネレータを返す。

 

Returns: すべての子linkを生成する generator object 

 

cleargrads()[source]

すべての勾配配列をクリアする。

 

この methodは最適化の繰り返しのたびに、逆方向演算の前に、呼び出されなければなりません。

 

copy()[source]

link階層を新しいものにコピーする。

 

このリンクから派生するすべての階層がコピーされる。このコピーは基本的に浅いコピーで、例外はパラメータ変数も浅くコピーされているとき。つまり、コピー元とコピーされたlinkがデータと勾配配列を共有しているのに、コピーされたlinkのパラメータ変数がオリジナルのlinkと異なるという場合を除く。

 

コピーされたインスタンスはコピー元の親chainがあったとしても、そこには属さないので、link名はコピー先ではリセットされる。

Returns: コピーされたlinkオブジェクト
Return type: Link

 

copyparams(link)[source]

与えられた linkからすべてのパラメータをコピーする。

 

このmethodは改装中のすべてのパラメータのデータ配列をコピーする。 このコピーはホストとデバイス を超えて行われる。ただし、このmethodでは勾配配列はコピーしないことに注意。

 

Parameters: link (Link) – コピー元の link オブジェクト.
disable_update()[source]

リンク階層下のすべてのパラメータの更新ルールを無効にする。

 

この methodは 各パラメータ変数の更新ルールの enabled フラグに  Falseを設定する。

enable_update()[source]

リンク階層下のすべてのパラメータの更新ルールを有効にする。

 

この method は各パラメータ変数の更新ルールの enabled フラグに  Trueを設定する。

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

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

 

このメソッドは、割当によってパラメータの登録を可能にするコンテクスト・マネージャ(かつ Chainのリンク)を返す。 Parameter オブジェクトは、このコンテクストマネージャ下のアトリビュートに割り当てることによって自動的に登録される。 

 

Example

 

多くの場合、初期化メソッドでこのパラメータ登録をする。  init_scope メソッドを用いて、 Parameter オブジェクトを登録するためにリンクに割り当てることが簡単にできる。

 


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,))

 

階層下のすべてのリンクのgeneratorを返す。

 

Parameters: skipself (bool) –  Trueの場合、 generator はこのリンクをスキップし、最初の子リンクからスタートする。
Returns: すべてのリンクを生成するgenerator オブジェクト。

 

 

階層下のすべてのパスとlinkのペアのgeneratorを返す。

 

Parameters:

skipself (bool) –  True  の場合、 generator はこのリンクをスキップし、最初の子リンクからスタートする。

Returns: すべてのパスとlinkのペアを生成するgeneratorオブジェクト

 

namedparams(include_uninit=True)[source]

 

階層下のパスとパラメータのペアのgeneratorを返す。

 

Parameters: include_uninit (bool) –  True の場合、初期化されていないパラメータも生成する。
Returns: すべてのパスと パラメータのペアを生成するgeneratorオブジェクト。 このパスはこのlinkの親戚。

 

params(include_uninit=True)[source]

link階層下ですべてのパラメータのgeneratorを返す。

 

Parameters: include_uninit (bool) – Trueの場合、初期化されていないパラメータも生成する。
Returns:

すべてのパラメータを生成する generator オブジェクト。

 

register_persistent(name)[source]

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

 

これは永続値として存在するattributeを登録する便利なmethodです。 name がすでにパラメータとして登録されている場合、このmethodはそれをパラメータ名のリストから削除し、永続値として登録します。

Parameters: name (str) – 登録するattribut名

 

serialize(serializer)[source]

このlinkオブジェクトをシリアル化する。

 

Parameters: serializer (AbstractSerializer) – シリアル化オブジェクト

 

to_cpu()[source]

 パラメータ変数と 永続値をCPUにコピーする。

 

このメソッドは非登録attriibuteを操作しません。そのようなattributeをCPUにコピーする場合、このlink実装はこのメソッドをそのようにオーバーライドしなければなりません。

Returns: self

 

to_gpu(device=None)[source]
パラメータ変数と 永続値をGPUにコピーする。

 

このメソッドは非登録attriibuteを操作しません。そのようなattributeをGPUにコピーする場合、このlink実装はこのメソッドをそのようにオーバーライドしなければなりません。

Parameters: device – Target device specifier. If omitted, the current device is used.
Returns: self

 

zerograds()[source]

すべての勾配配列をゼロで初期化する。

 

このメソッドは、cleargradsと同じ目的で用いることが可能だが、効率は落ちます。このメソッドは、後方互換性のために残されているものです。

 

version v1.15以降は非推奨:
代わりに cleargrads() をご利用ください。

 

Attributes / 属性

update_enabled

True ならば、少なくとも1つのパラメータが更新ルールを有効にしている。

 

within_init_scope

現在のコードが初期化スコープの内側であるならTrue

初期化スコープ詳細については、 init_scope() もお読みください。

xp

このlinkの配列モジュール。

このlinkがCPU/GPU上のどちらにあるかによって、このプロパティは numpycupyを返す。