Tensorflow批处理非常慢

时间:2017-03-13 12:10:37

标签: tensorflow batching

我尝试使用Estimator设置一个非常简单的Mnist示例。

首先,我使用了估算器的弃用fit()参数x,y和batch_size。这执行得非常快,并且使用了大约100%的GPU而不会影响CPU(大约10%的利用率)。所以它按预期工作。

因为不推荐使用x,y和batch_size参数,所以我想对fit()函数使用input_fn参数。为了构建input_fn,我使用了tf.slice_input_producer并将其与tf.train.batch一起批处理。这是我的代码https://gist.github.com/andreas-eberle/11f650fca0dce4c9d3d6c0955145e80d。您应该能够使用tensorflow 1.0运行它。

我的问题是现在训练速度非常慢,只占我GPU的30%左右(显示在nvidia-smi中)。

我还尝试增加slice_input_producer的队列容量,并增加用于批处理的线程数。但是,这仅有助于获得大约45%的GPU利用率,并导致100%的GPU利用率。

我做错了什么?是否有更好的方式来输入输入和批量输入?我不想手动创建批处理(创建numpy输入数组的子数组),因为我想将此示例用于更复杂的输入队列,我将在其中读取和预处理图中的图像。

我不认为我的硬件应该是问题所在:

  • 列表项
  • Windows 10
  • NVidia GTX 960M
  • i7-6700HQ
  • 32 GB RAM

0 个答案:

没有答案