Google Cloud MXエンジンで大規模な分散Tensorflowモデルを実行しています。私はGPUを搭載したマシンを使いたいです。 私のグラフは、入力/データリーダー機能と計算部分の2つの主要な部分で構成されています。Google Cloud MLエンジンにTensorflowデバイスを配置する
PSタスク、CPUの入力部分、GPUの計算部分に変数を配置したいと考えています。 関数tf.train.replica_device_setter
は自動的に変数をPSサーバに配置します。
これは私のコードは次のようになります。
with tf.device(tf.train.replica_device_setter(cluster=cluster_spec)):
input_tensors = model.input_fn(...)
output_tensors = model.model_fn(input_tensors, ...)
は、のようにreplica_device_setter()
と一緒tf.device()
を使用することが可能です:
with tf.device(tf.train.replica_device_setter(cluster=cluster_spec)):
with tf.device('/cpu:0')
input_tensors = model.input_fn(...)
with tf.device('/gpu:0')
tensor_dict = model.model_fn(input_tensors, ...)
replica_divice_setter()
を上書きし、変数が中に配置されていないことだろうPSサーバー?
さらに、クラスタ内のデバイス名はjob:master/replica:0/task:0/gpu:0
のようなものなので、Tensorflow tf.device(whatever/gpu:0)
にはどうすればいいですか?
あなた自身tf.deviceを指定する()だけで1つのフォロー外側のスコープ –