【发布时间】:2016-11-20 11:54:58
【问题描述】:
我有四张 GPU 卡,但 CPU 无法为所有这些卡提供足够快的图像预处理。队列很快就用完了,大部分时间卡都是空闲的。有没有办法将 QueueRunner 放在这四张 GPU 卡中的一张上,以便一张卡进行预处理并形成队列,而另外三张实际训练模型?
【问题讨论】:
标签: tensorflow gpu multi-gpu
我有四张 GPU 卡,但 CPU 无法为所有这些卡提供足够快的图像预处理。队列很快就用完了,大部分时间卡都是空闲的。有没有办法将 QueueRunner 放在这四张 GPU 卡中的一张上,以便一张卡进行预处理并形成队列,而另外三张实际训练模型?
【问题讨论】:
标签: tensorflow gpu multi-gpu
是的,应该可以。您可以将预处理python函数包装在tf.py_func中,创建一个TF op并使用with tf.device("gpu:0"):将其放入请求的gpu,在那里创建一个队列并在另一个gpus上使用dequeue op。
【讨论】:
with放在哪里?我在数据集上使用map()s 定义图像增强。