gpt4 book ai didi

Tensorflow:多 GPU 单输入队列

转载 作者:行者123 更新时间:2023-12-03 00:13:37 25 4
gpt4 key购买 nike

tensorflow's cifar10 multi-GPU example ,似乎(如果我错了,请纠正我)每个 GPU 都会创建一个训练图像队列。难道“正确”的做法不是让一个队列为所有塔提供数据吗?如果是这样,是否有共享队列的示例?

最佳答案

您是正确的,CIFAR-10 模型的代码使用多个输入队列(通过 cifar10.distorted_inputs() 多次调用 cifar10.tower_loss() )。

在 GPU 之间使用共享队列的最简单方法是执行以下操作:

  1. 将批量大小增加 N 倍,其中 N 是 GPU 的数量。

  2. 将对 cifar10.distorted_inputs() 的调用移出 cifar10.tower_loss()loop over GPUs 之外。

  3. 沿第 0 个(批量)维度拆分从 images 返回的 labelscifar10.distorted_inputs() 张量:

    images, labels = cifar10.distorted_inputs()
    split_images = tf.split(0, FLAGS.num_gpus, images)
    split_labels = tf.split(0, FLAGS.num_gpus, labels)
  4. 修改 cifar10.tower_loss() 以采用 imageslabels 参数,并按如下方式调用它:

    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, split_images[i], split_labels[i])

关于Tensorflow:多 GPU 单输入队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34273951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com