chainer.
report
(values, observer=None)[source]¶
観察値をカレントのReporter オブジェクトとともに報告する。
どのReporter オブジェクトもwith文によってカレントとして設定することが可能です。この関数は、カレントのReporterの Report.report()
メソッドを呼び出します。カレントのReporterオブジェクトがない場合、この関数は何も行いません。
Example
最も一般的な例はLinkとChain内での使用です。LinkはカレントのReporterにオブザーバとして登録されていると仮定してください。 (たとえば、Optimizerのターゲットリンクは自動的に Trainer
のReporterに登録されます。)Linkのあるアタイは下記のように報告できます。
class MyRegressor(chainer.Chain):
def __init__(self, predictor):
super(MyRegressor, self).__init__(predictor=predictor)
def __call__(self, x, y):
# このChainは予測値とyの平均絶対誤差と平均二乗誤差を計算しているだけ。
pred = self.predictor(x)
abs_error = F.sum(F.abs(pred - y)) / len(x.data)
loss = F.mean_squared_error(pred, y)
# 平均絶対誤差と平均二乗誤差を報告する。
report({'abs_error': abs_error, 'squared_error': loss}, self)
return loss
このLinkが階層において 'main'
と名付けられている場合 ( 'main'
は StandardUpdater
ターゲットリンクのデフォルト名)、上記の例で報告された値は 'main/abs_error'
と 'main/squared_error'
と名付けられます。これらの値が Evaluator
extension内で報告された場合、 'validation/'
がLink名の先頭に加えられ、アイテム名はそれぞれ'validation/main/abs_error'
と 'validation/main/squared_error'
へ変更されます。('validation'
はEvaluator
extensionのデフォルト名).
Parameters: |
|
---|