Je veux transformer mon pour Estimator
en une solution multi-GPU.Multi configuration GPU/tour Estimateur Tensorflow 1.2
Y a-t-il un moyen de le faire dans l'API Esitmator ou dois-je coder explicitement le placement et la synchronisation des périphériques. Je sais que je peux utiliser tf.device('gpu:X')
pour placer mon modèle sur GPU X
. Je sais également que je peux boucler sur les noms de GPU disponibles pour répliquer mon modèle sur plusieurs GPU. Je sais aussi que je peux utiliser une seule file d'entrée pour plusieurs GPU. Ce que je ne sais pas, c'est quelles parties (optimiseur, calcul de perte), je peux réellement passer à un GPU et où je dois synchroniser le calcul.
De l'exemple Cifar10
, je suppose que je dois seulement synchroniser le dégradé.
particulièrement lorsque vous utilisez
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)
Je ne peux pas appeler optimizer.compute_gradients()
ou optimizer.apply_gradients()
plus manuellement comme cela est géré en interne par .optimize_loss(..)
Je me demande comment en moyenne les gradients comme il est fait dans le cifar10 exemple Cifar10-MultiGPU ou si c'est même la bonne approche pour Estimator
.