Étant donné que les dégradés auront une erreur 'out of memory', comment puis-je exécuter la fonction de gradient dans plusieurs GPU?Comment faire pour que la fonction tf.gradients() fonctionne dans plusieurs gpu?
with tf.device('gpu:1'):
trainable_variables = tf.trainable_variables()
grads = tf.gradients(self.loss, trainable_variables)
with tf.device('/gpu:2'):
var1=trainable_variables[60:107]
grad1=tf.gradients(self.loss, var1)
with tf.device('/gpu:3'):
var2=trainable_variables[57:107]
grad2=tf.gradients(self.loss, var2)
with tf.device('/gpu:3'):
optimizer = tf.train.RMSPropOptimizer(
self.lrn_rate,
decay=0.9,
momentum=0.9,
epsilon=1.0)
apply_op1 = optimizer.apply_gradients(
zip(grads, trainable_variables),
global_step=self.global_step, name='train_step')
Le code ci-dessus ne fonctionne que dans gpu: 1, étant donné que les gradients \ ou gradients_1 \ espace de noms sort uniquement en gpu: 1, comment peut-il fonctionner dans plusieurs gpu?