【发布时间】:2018-06-29 07:56:51
【问题描述】:
在我的数据训练期间,我的 GPU 利用率约为 40%,并且我清楚地看到有一个基于 tensorflow 分析器的数据复制操作占用了大量时间(见附图)。我认为“MEMCPYHtoD”选项正在将批处理从 CPU 复制到 GPU,并阻止 GPU 被使用。无论如何将数据预取到GPU?还是有其他我没有看到的问题?
这里是数据集的代码:
X_placeholder = tf.placeholder(tf.float32, data.train.X.shape)
y_placeholder = tf.placeholder(tf.float32, data.train.y[label].shape)
dataset = tf.data.Dataset.from_tensor_slices({"X": X_placeholder,
"y": y_placeholder})
dataset = dataset.repeat(1000)
dataset = dataset.batch(1000)
dataset = dataset.prefetch(2)
iterator = dataset.make_initializable_iterator()
next_element = iterator.get_next()
【问题讨论】:
-
另一个相关线程,绑定到 GPU 以进行预取的队列看起来像是在 1.5 中的某个地方:github.com/tensorflow/tensorflow/issues/5722
标签: python tensorflow dataset