Dans le tensorflow multi-gpu CIFAR 10 example, pour chaque GPU, ils calculent la perte (lignes 174-180)exemple multi-GPU CIFAR10 en tensorflow: agrégée perte
for i in xrange(FLAGS.num_gpus):
with tf.device('/gpu:%d' % i):
with tf.name_scope('%s_%d' % (cifar10.TOWER_NAME, i)) as scope:
loss = tower_loss(scope)
Quand quelques lignes ci-dessous (ligne 246 ), ils évaluent loss
avec
_, loss_value = sess.run([train_op, loss])
quelle perte est exactement calculée?
J'ai regardé la fonction tower_loss
, mais je ne vois aucune agrégation incrémentale sur tous les GPU (tours). Je comprends que tout le graphique est en cours d'exécution (sur tous les GPU), mais quelle valeur de la perte sera retournée? Seul le loss
sur le dernier GPU? Je ne vois aucune agrégation sur la variable loss
réelle.