【发布时间】:2017-02-28 04:06:36
【问题描述】:
不幸的是,我有一个图表,其中一些节点不支持批处理。(尚未充实的自定义操作)我已经能够让多个线程调用 sess.run 并通过 feed_dict 投入数据.我现在已经将我的数据转换为 tfrecords 以正确利用队列,但仍然无法找到一种方法来告诉它并行运行图形的多个实例,而无需多个线程调用 sess.run()。我假设 tensorflow 开发人员已经在某处创建了一种更“pythonic”的方式,但我还没有找到它。我如何在 tensorflow 中做到这一点?
编辑:即使对数据进行了批处理,上一个问题仍然存在,因为我的计算将一半时间花在 cpu 上,一半时间花在 gpu 上,因此无论批处理如何,一个人将等待另一个人等待一半时间。我想让图形异步训练多个样本以填充该空间。
编辑2:我想我必须在这里为不想阅读上面文字的人放置伪代码。
import tensorflow as tf
resultOfCPUCalculation = someCPUOnlyOP(inputData)\\does not support batching
gpuResults = aBunchOfGPUOps(resultOfCPUCalculation)
with tf.Session() as sess:
sess.run([gpuResults])
//only uses 1 cpu core, and the gpu is idle while it's doing it's thing.
我想以“管道”方式执行此操作,一旦 CPU 操作完成,它就会从另一个样本开始。
【问题讨论】:
标签: python multithreading tensorflow