在 tensorflow多 GPU CIFAR 10 示例中,对于每个 GPU,他们计算损失(第 174-180 行)
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)
当下面几行(第 246 行)时,他们评估loss
为
_, loss_value = sess.run([train_op, loss])
究竟计算了什么损失?
我查看了该tower_loss
函数,但没有看到所有 GPU(塔)上的任何增量聚合。
我知道整个图正在执行(在所有 GPU 上),但是会返回什么损失值?只有loss
在最后一个 GPU 上?我没有看到实际loss
变量的任何聚合。