インテル® DAAL 2018 デベロッパー・ガイド

訓練

アルゴリズムのパラメーター

分散処理モードのニューラル・ネットワーク訓練アルゴリズムのパラメーターは次のとおりです。

パラメーター

デフォルト値

説明

computeStep

適用不可

アルゴリズムを初期化するために必要なパラメーターです。次のいずれか。

  • step1Local - 第 1 ステップ、ローカルノードで実行
  • step2Master - 第 2 ステップ、マスターノードで実行

algorithmFPType

float

アルゴリズムが中間計算に使用する浮動小数点の型。float または double を指定できます。

method

defaultDense

パフォーマンス指向の計算メソッド。

batchSize

128

各ノードの訓練で同時に使用するサンプルの数。同期計算の場合、このパラメーターの値はすべてのノードで同じでなければなりません。非同期計算の場合は異なる値を使用できます。このパラメーターは、ローカルノードで実行するアルゴリズムにより使用されます。

optimizationSolver

SharedPtr<optimization_solver:: sgd::Batch<float, defaultDense > >()

訓練段階で使用する最適化プロシージャー。このパラメーターは、マスターノードで実行するアルゴリズムにより使用されます。

初期化


ニューラル・ネットワーク訓練の分散処理の初期化
計算が同期か非同期かに応じてバッチサイズを初期化します。

分散処理モードのニューラル・ネットワーク訓練では、以下の図のように 2 ステップの計算スキーマを使用します。

ステップ 1 - ローカルノード


ニューラル・ネットワーク訓練の分散処理のステップ 1 ローカルのワークフロー

このステップのニューラル・ネットワーク訓練アルゴリズムの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

data

ローカルノードの i 番目のデータブロックを表すサイズ batchSize x n2 x ... x np のテンソルのポインター。この入力は、Tensor の派生クラスのオブジェクトです。

groundTruth

入力データに関連付けられた i 番目の結果を格納するサイズ batchSize のテンソルのポインター。この入力は、Tensor の派生クラスのオブジェクトです。

inputModel

マスターノードで更新されるニューラル・ネットワーク・モデル。入力は Model クラスのオブジェクトです。

重要

マスターノードがローカルノードにモデルを渡した後、inputModelsetWeightsAndBiases() メソッドを使用してモデルのパラメーターを更新します。

このステップで、ニューラル・ネットワーク訓練アルゴリズムは次の部分結果を計算します。部分結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

部分結果 ID

部分結果

derivatives

サイズ weightsAndBiasesSize x 1 の数値テーブルのポインター (weightsAndBiasesSize はモデルのパラメーターの数)。デフォルトでは、この結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

batchSize

各ノードの訓練で同時に使用するサンプルの数を含むサイズ 1 x 1 の数値テーブルのポインター。デフォルトでは、この部分結果は HomogenNumericTable クラスのオブジェクトですが、(CSRNumericTablePackedSymmetricMatrix、および PackedTriangularMatrix を除く) NumericTable の派生クラスのオブジェクトとして定義できます。

ステップ 2 - マスターノード



このステップのニューラル・ネットワーク訓練アルゴリズムの入力は次のとおりです。入力 ID をパラメーターとして、アルゴリズムの入力を提供するメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

入力 ID

入力

partialResults

ステップ 1 のローカルノードで計算された結果 (derivatives および batchSize)。この入力は PartialResult クラスのオブジェクトを含みます。

マスターノードのモデルはローカルノードの部分結果に応じて段階的に更新できますが、同期計算では、マスターノードは、すべてのローカルノードの部分結果を処理した後にのみ更新されたモデルを送ることに注意してください。

このステップで、ニューラル・ネットワーク訓練アルゴリズムは次の結果を計算します。結果 ID をパラメーターとして、アルゴリズムの結果にアクセスするメソッドに渡します。詳細は、「アルゴリズム」を参照してください。

結果 ID

結果

model

重みとバイアスのセットで訓練されるモデル。結果は Model クラスのオブジェクトです。

関連情報