のEstimator
をマルチGPUソリューションに変更したいと思います。マルチGPU /タワーセットアップTensorflow 1.2見積り
Esitmator API内で実行する方法はありますか、デバイスの配置と同期を明示的に記述する必要がありますか。
私はtf.device('gpu:X')
を使用してGPU X
に自分のモデルを配置できます。また、複数のGPUでモデルを複製するために、使用可能なGPU名をループすることもできます。また、複数のGPUに1つの入力キューを使用できることも知っています。
どのパーツ(オプティマイザ、損失計算)がわかりませんが、私は実際にGPUに移動でき、計算を同期させる必要があります。
Cifar10
の例から、グラデーションを同期させるだけでよいことがわかります。
特に
train_op = tf.contrib.layers.optimize_loss(
loss=loss,
global_step=tf.contrib.framework.get_global_step(),
learning_rate=learning_rate,
learning_rate_decay_fn=_learning_rate_decay_fn,
optimizer=optimizer)
を使用したとき、私は、私はそれがcifar10で行われるように勾配を平均化する方法を疑問に思って.optimize_loss(..)
して手動でもうこれは内部的に処理されるようoptimizer.compute_gradients()
またはoptimizer.apply_gradients()
を呼び出すことはできません例Cifar10-MultiGPUまたはそれがEstimator
の正しいアプローチでもある場合