2017-08-22 15 views
-1

私は、1台のマシンで比較的少数の共有パラメータを持つ非常に幅広く浅い計算グラフを作成しています。私はグラフを広げたいが、メモリが足りなくなっている。 Distributed Tensorflowを使用することで、tf.deviceコンテキストマネージャを使用して、ワーカー間でグラフを分割することができます。しかし、損失をどのように処理するかは明確ではありません。これは、グラフ全体を実行することによってのみ計算することができ、トレーニング操作です。ワイドで浅いモデルの分散トレーニング

この種のモデルのパラメータを訓練する正しい戦略は何でしょうか?

答えて

1

TensorFlowは、データフローグラフの概念に基づいています。変数とopsで構成されるグラフを定義し、上記の変数とopsを異なるサーバーやデバイスに配置することができます。 session.Runを呼び出すと、グラフにデータが渡され、入力(feed_dictで指定)と出力(の引数がsession.Runに指定されている)間の各操作が、それらのopsの存在場所に関係なく実行されます。もちろん、サーバー間でデータを渡すと通信オーバーヘッドが発生しますが、そのオーバーヘッドは、複数の並行作業者が同時に計算を実行できるという事実によって補完されることがよくあります。

つまり、他のサーバーにopsを置いても、フルグラフで損失を計算できます。ここで

は大規模な線形モデルのチュートリアルです:https://www.tensorflow.org/tutorials/linear

そして、ここではTensorFlowにおける分散訓練のチュートリアルです: https://www.tensorflow.org/deploy/distributed

関連する問題