class chainer.Reporter[source]

観測値が報告されるオブジェクト。

 

Reporterは、ユーザが観察したい値を収集するために使用されます。Reporter オブジェクトは値の名前から実際の観測値へのマッピングを保持します。このマッピングをobservationsといいます。

値がReporterへ渡される時、オブジェクトは選択的に紐付けすることができる observer (オブザーバ・観測者)を呼び出します。この場合、このオブザーバの名前は値の名前に接頭語が付けられたものとなります。このオブザーバ名は前もって登録されていなければなりません。

 

下記の例をご覧ください。


>>> from chainer import Reporter, report, report_scope
>>>
>>> reporter = Reporter()
>>> observer = object() # 任意のオブジェクトでよい
>>> reporter.add_observer('my_observer:', observer)
>>> observation = {}
>>> with reporter.scope(observation):
... reporter.report({'x': 1}, observer)
...
>>> observation
{'my_observer:x': 1}

 

 値を加えるためのglobal API もあります。

>>> observation = {}

>>> with report_scope(observation):
... report({'x': 1}, observer)
...
>>> observation
{'my_observer:x': 1}

 

Reporter の最も重要な機能は、各リンクもしくは訓練中のチェーンと検証の観測値を報告することです。 Trainer と幾つかの拡張は、オブザーバとして登録されたターゲットリンクのの階層を伴う独自のReporterオブジェクトを容易しています。  report() 関数をLinkやChainの内部で観測値を報告するために使用することも出来ます。  (訓練損失、精度, 活性化統計 etc.).

Variables: observation – 観測値の辞書

 

Methods

__enter__()[source]

このReportオブジェクトをカレントにする。

__exit__(exc_type, exc_value, traceback)[source]

以前のReporter オブジェクトをカレントへ復帰させる。

add_observer(name, observer)[source]

観測値を登録する。

 

オブザーバは観測値の名前のスコープを定義します。 オブザーバによって観測される値は、オブザーバ名を接頭辞とする名前で登録されます。

Parameters:
  • name (str) – オブザーバ名
  • observer –オブザーバ オブジェクト。. Note that the Reporter はオブジェクトの等しさではなく、, id(owner)のようなオブジェクト識別子でObserverと区別されるので注意してください。

 

add_observers(prefix, observers)[source]

複数のオブザーバを一度に登録する。

 

これは複数のオブザーバを一同に登録する便利なオブジェクトです。

Parameters:
  • prefix (str) –各オブザーバ名の接頭辞
  • observers – 名前とObserverのペアのIterator 
report(values, observer=None)[source]

観測値を報告する。

 

この値は、keyとともにオブザーバオブジェクトによって接頭辞が与えられた場合は接頭辞も、書き込まれます。

 

Note

 v2.0.0のように、値が Variable型だった場合、Variableは計算グラフに保存されずにコピーされ、グラフからパージされた新たなVariableオブジェクトはオブザーバに格納されます。この動作は chainer.config.keep_graph_on_reportTrueに設定することによって変更可能です。

Parameters:
  • values (dict) – 観察値の辞書。
  • observer – Observer オブジェクト。このオブジェクト ID はオブザーバ名の取得に用いられ、オブザーバ名は観察値の名前の登録の際の接頭辞として用いられる。

 

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

観察値を observationへ報告するためのスコープを生成する。

 

これは、with 文へ渡されるコンテキスト・マネージャです。このスコープにおいて. Observationのの辞書は与えられたものに変更されます。

また、このReporterオブジェクトがカレントにされます。

 

Parameters: observation (dict) – Observation 辞書. 全ての with 文の内部で報告された全ての観察結果はこの辞書内に書き込まれます。