jupyter笔记本中的tf与命令行的性能

时间:2016-09-04 14:13:31

标签: tensorflow jupyter jupyter-notebook

从jupyter笔记本中运行tensorflow代码时,我注意到了相当大的性能(速度)差异,而不是从命令行将其作为脚本运行。

例如,下面是运行MNIST CNN教程(https://www.tensorflow.org/code/tensorflow/examples/tutorials/mnist/fully_connected_feed.py

的结果

设置:

具有32 Xeon-CPUS,62GB内存,4 K520 GPUS(4GB内存)的AWS实例

Linux:3.13.0-79 Ubuntu

Tensorflow:0.10.0rc0(由支持GPU的源代码构建)

Python:3.5.2 | Anaconda custom(64位)|

CUDA库:libcublas.so.7.5,libcudnn.so.5,libcufft.so.7.5,libcuda.so.1,libcurand.so.7.5

培训步骤:2000

Jupyter笔记本执行时间:

包含导入和加载数据集的时间 - 只是培训阶段

CPU times: user 8min 58s, sys: 0 ns, total: 8min 58s Wall time: 8min 20s

命令行执行:

这是执行完整脚本的时间。

real 0m18.803s user 0m11.326s sys 0m13.200s

GPU正在两种情况下使用,但利用率更高(在命令行的训练阶段通常为35%,而笔记本版本为2-3%)。我甚至尝试将其手动放置在不同的GPU上,但这对笔记本的执行时间没有太大影响。

关于为什么会这样做的任何想法/建议?

1 个答案:

答案 0 :(得分:0)

我看到了相反的情况。笔记本中的GPU使用率优于命令行。

我一直在使用DQN训练乒乓球,使用命令行的帧速降至17fps,而使用笔记本的帧速降至100fps。

我看到了nvidia-smi的统计信息,其中显示了命令行方法294MB的使用量,木星笔记本方法的984MB的使用量。

不知道原因,但在colab中也有类似观察