インテル® DAAL 2018 デベロッパー・ガイド
ニューラル・ネットワーク訓練に分散処理モードを使用できます。分散処理モードのニューラル・ネットワーク訓練のアプローチは、以下の種類の並列化に基づきます。
ライブラリーは、データベースの並列化をサポートします。
データベースの並列化アプローチには、次の特徴があります。
ライブラリーは、データベースの並列化を使用するニューラル・ネットワーク・モデルのパラメーターを更新する次の方法をサポートします。
同期。
マスターノードは、すべてのローカルノードが訓練の指定された反復にローカルの導関数を渡した後にのみモデルを更新します。
非同期。
マスターノードは次の操作を行います。
データベースの並列化を使用するニューラル・ネットワーク・モデルの訓練フローには次のステップが含まれます。
マスターノードの initialize() メソッドを使用してニューラル・ネットワーク・モデルを初期化し、モデルをローカルノードに伝えます。
「使用モデル: 訓練と予測」 > 「訓練」セクションで説明されているように、ローカルノードの訓練アルゴリズムを実行します。
次の図の、i 番目のデータブロックに対応する、i 番目の反復を参照してください。ローカルノードの i 番目のデータブロックの計算が完了した後、ローカルの重みとバイアスの導関数をマスターノードに送ります。
ローカルノードの訓練アルゴリズムには最適化ソルバーは必要ありません。
すべてのローカルノードからローカルの導関数を提供してマスターノードの訓練アルゴリズムを実行します。アルゴリズムは、optimizationSolver パラメーターで提供される最適化ソルバーを使用します。利用可能なアルゴリズムは、「最適化ソルバー」を参照してください。計算が完了した後、モデルの更新された重みとバイアスのパラメーターをすべてのローカルノードに送ります。
マスターまたはローカルノードの訓練アルゴリズムを実行した後、finalizeCompute() メソッドを呼び出すと、モデルの最新バージョンを取得できます。
すべてのデータブロックに対して計算 2 - 3 を実行します。訓練プロセスが完了した後、マスターノードで訓練されたモデルの getPredictionModel() メソッドを呼び出して検証および予測に使用されるモデルを取得します。