在训练数据期间,我的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()
Run Code Online (Sandbox Code Playgroud)