2016-12-09 8 views
0

これは私には全く新しいものですから質問しています(これはLinuxの質問ではTFに関するコンピュータネットワークの詳細ですが、誰かがすでに行っているかもしれません)TFのネットワーク内の複数のコンピュータのプロセッサを使用する方法

私のGPUは必要な入力データを計算することができないので、CPUからリソースを取得する必要がありましたが、CPU + GPUでさえもすべての操作に対応できないことがあります。私は自分のコンピュータとネットワーク上にある別のコンピュータのプロセッサを使うことができますが、どのようにコード化すべきか分かりません(私はそのコンピュータにアクセスできますが、その地域ではLinuxでうまくいかない:p )

私はTFのWebページを見ていましたが、リソースがローカルのときに伝えています。Here私のGPUがすべての情報に対処できないときはいつも解決しました。 with tf.device('other_computer/cpu:0'):のようなものかもしれませんが、私はsess = tf.Session(config=tf.ConfigProto(log_device_placement=True))という行を変更しなければならないと思います。同時に、他のコンピュータにアクセスしなければならなかったのですが、どうすればいいのか分かりません。

とにかく誰かがこれを前にしていた、私はknに感謝するだろうそれゆえ。私はTensorFlowがネットワークによって接続された複数のコンピュータでのCPU(及び潜在のGPU)を使用して、分散計算をサポート

おかげ

答えて

0

を使用することができる任意の参照を受け入れます。 with tf.device():ブロックが役に立ちそうなあなたの直感は正しいです。これは幅広いトピックですが、分散TensorFlow計算の設定には3つの主要なステップがあります:タスクのリストであるジョブを、TensorFlowする

  1. tf.train.Serverを作成し、クラスタ内のマシンをマップ。使用する各コンピュータにtf.train.Serverを作成し、同じcluster definitionで設定する必要があります。

  2. TensorFlowグラフを作成します。 with tf.device("/job:foo/task:17"):を使用して、手順1で定義した"foo"というジョブの17番目のタスクに配置するノードのブロックを定義します。tf.train.replica_device_setter()のようなデバイスマッピングポリシーを適用する便利な方法があります。トレーニングトポロジー

  3. ローカルサーバーに接続するtf.Sessionを作成します。サーバをserver = tf.train.Server(...)として作成した場合は、セッションをsess = tf.Session(server.target, ...)として作成します。

分散可能なTensorFlow here、およびクラスタhereを使用してインセプション画像認識モデルを訓練するためのいくつかのサンプルコードについて長いチュートリアルがあります。

関連する問題