class chainer.training.ParallelUpdater(iterator, optimizer, converter=<function concat_examples>, models=None, devices=None, loss_func=None)[source]

parallel GPU Updaterの実装。

 

これは、複数のGPUを用いる Updater の実装です。 StandardUpdater のように動作します。この更新ルーチンは1台のマシンにおける複数のGPU上でのデータの並列処理をサポートするために変更されます。これは、synchronous parallel SGD(同時並列確率的勾配降下法)に基いています。これは、ミニバッチの勾配計算を並列化し、メインデバイスのみで、パラメータを更新します。

 

Parameters:
  • iterator – 訓練データセットのためのデータセット・イテレータ。文字列をイテレータにマップしている辞書とすることも可能。これが、単にイテレータだった場合、イテレータは'main'という名称で登録されている。
  • optimizer – 更新パラメータのOptimizer. Optimizerへ文字列をマップする辞書にもなりうる。このパラメータが単にOptimizerである場合、このOptimizerは 'main'という名称で登録される。
  • converter –入力配列を構築する変換関数。 main iteratorによって抽出された各バッチはデバイス間で均等に分割され、対応するdevice オプションとともに、この関数に渡される。concat_examples() がデフォルトで用いられる。
  • models – モデルの辞書。主モデルは 'main' optimizerに紐付けられたものと同じモデルでなければなりません。
  • device – 訓練データが送られるデバイスの辞書。デバイスはmodelsと同じ構造で、辞書に配置されている。
  • loss_func – 損失関数。このモデルがデフォルトでロス関数として用いられる。

 

Methods

connect_trainer(trainer)[source]
finalize()[source]

Finalizes the updater オブジェクトをファイナライズする。

 

このメソッドは、このUpdaterが保持している各Iteratorのfinalize メソッドを呼び出します。訓練ループの最後に呼び出されます。

get_all_optimizers()[source]

このUpdaterの全てのOptimizerの辞書を取得する。

 

Returns: Optimizersに名前をマップしている辞書。
Return type: dict
get_iterator(name)[source]

与えられた名称の DatasetのIterator を取得する。

 

Parameters: name (str) – Dataset iteratorの名称
Returns: Parameterで指定された名称に相応するDataset iterator.
Return type: Iterator
get_optimizer(name)[source]

与えられた名称のOptimizerを取得する。

 

Parameters: name (str) – Optimizerの名称
Returns: Parameterで指定された名称に相応するOptimizer.
Return type: Optimizer
serialize(serializer)[source]

オブジェクトのカレント・ステートをシリアル化する。

update()[source]

ターゲットモデルのパラメータを更新する。

 

このメソッドは 、データのロード、順方向/逆方向の計算、実際のParameterの更新を含む、訓練タスクのための更新式を実装しています。

このメソッドは訓練ループの各反復処理につき1回呼ばれます。 

update_core()[source]

Attributes

epoch
epoch_detail
is_new_epoch
previous_epoch_detail