tensorflow - jupyter notebooks 与命令行中 tf 的性能

标签 tensorflow jupyter jupyter-notebook

我注意到从 jupyter notebook 内部运行 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 自定义(64 位)|

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

训练步数:2000

Jupyter notebook 执行时间:

这不包括导入和加载数据集的时间——只是训练阶段
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 上,但这对笔记本执行时间没有太大影响。

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

最佳答案

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

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

我看到了 nvidia-smi stats,它显示了命令行方法中的 294MB 使用量,Jupiter 笔记本方法中的 984MB 使用量。

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

关于tensorflow - jupyter notebooks 与命令行中 tf 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39317825/

相关文章:

python - 如何在 Jupyter 中将图表图像导出为 pdf?

r - 使用 Keras 连接到多个层

python - 卡在 tensorflow 高级索引上

用于 Jupyter 的 Julia Kernel 崩溃

javascript - 在 Google Colab Notebook 中提供 Iframe : localhost refused to connect

python - jupyter R 魔术到 python 脚本

python - 为什么 "pip3 --help"失败?

python - 当我以面向对象的方式使用matplotlib编程时,是否可以在jupyter笔记本中自动完成代码?

python - 多标签分类损失函数

tensorflow - tf.Variable 如何维护图的状态?