3

私は、Imagenet の分散型 TF トレインの例を綿密にフォローしていました。

この例が 2 つの異なるワーカーで実行されている場合、データの分散がどのように行われるのか理解できませんか? 理論的には、さまざまなワーカーがデータのさまざまな部分を見る必要があります。また、パラメーター サーバーでパラメーターを渡すように指示するコードの部分はどれですか? マルチ GPU の例のように、「cpu:0」の明示的なセクションがあります。

4

1 に答える 1

4

異なるワーカーは、前処理された画像の単一のキューからミニ バッチ画像をデキューすることにより、データの異なる部分を確認します。詳しく説明すると、Imagenet モデルをトレーニングするための分散セットアップでは、入力画像は複数のスレッドによって前処理され、前処理された画像は単一のRandomShuffleQueue. このファイルでを検索してtf.RandomShuffleQueue、これがどのように行われるかを確認できます。複数のワーカーは「インセプション タワー」として編成され、各タワーは同じキューからイメージのミニ バッチをデキューし、入力の異なる部分を取得します。ここの写真は、質問の 2 番目の部分に答えています。このファイルで探します。そこにあるロジックは、slim.variables.VariableDeviceChooserVariableオブジェクトは、パラメーター サーバーとして機能するワーカーに均等に割り当てられます。実際のトレーニングを行う他のすべてのワーカーは、ステップの開始時に変数を取得し、ステップの終了時にそれらを更新します。

于 2016-07-04T18:34:48.173 に答える