2017-03-29 10 views
0

Distributed Tensorflowの「グラフ間レプリケーション」を使用して、複数のクライアントを定義する必要があります(それぞれTensorflowセッション/グラフを作成および構築します)。通常、クライアントとワーカーは同じプロセスにあり、tf.train.MonitoredTrainingSession()はそれらのTensorflowセッションを調整します。tf.train.MonitoredTrainingSession()はGRPCをサポートしていますか?

各クライアントとワーカーが同じプロセスにない場合、クライアントにgrpcを使用してワーカータスクをリモートで実行させたい場合は、tf.train.MonitoredTrainingSession()または一部のAPIがこの機能をサポートしているのか、 。 (tf.Session(<grpc_url>)はgrpcをサポートしていますが、複数のTensorflowセッションを調整しません)

答えて

1

はい、tf.train.MonitoredTrainingSessionはgRPCを使用できます。ただしDistributed TensorFlow tutorialに示すように、手動でtf.train.Serverオブジェクトを手動で作成する必要があります(通常はプロセスごとに1つ)。

あなたがtf.train.Serverを作成した後、分散訓練のためにtf.train.MonitoredTrainingSessionを設定するための最も一般的な方法は、server"worker"ジョブ内のサーバの一つであり、tf.train.MonitoredTrainingSession(master=server.target)を呼び出すことです。

+0

あなたの答えをありがとう!しかし、まだ私には明らかではないようです。基本的に、私は 'MonitoredTrainingSession'がtfセッションを作成して開始するときにクライアント側に現れると思います。 "グラフ間レプリケーション"でgrpcを使用しているので、各クライアントはワーカーのための別のプロセスです。ワーカーとクライアントコードがどのように見えるのでしょうか(私はワーカーがサーバーオブジェクトを作成すると思います。しかし、MonitoredTrainingSessionがクライアントプロセスそのobjを使用して、クライアントで別の同じobjを作成する必要があるのでしょうか?)また、セッションがgrpcで実行されているかどうかを 'tf.train.MonitoredTrainingSession'がどのように伝えますか? –

関連する問題