Tensorflow jupyter笔记本电脑内部tf的性能与命令行

Tensorflow jupyter笔记本电脑内部tf的性能与命令行,tensorflow,jupyter,jupyter-notebook,Tensorflow,Jupyter,Jupyter Notebook,我注意到,在jupyter笔记本中运行tensorflow代码与在命令行中作为脚本运行tensorflow代码相比,在性能(速度)上有很大的差异 例如,下面是运行MNIST CNN教程的结果() 设置: AWS实例,具有32个Xeon CPU、62GB内存、4个K520 GPU(4GB内存) Linux:3.13.0-79 Ubuntu Tensorflow:0.10.0rc0(从支持GPU的源代码构建) Python:3.5.2 | Anaconda定制(64位)| CUDA库:libcubl

我注意到,在jupyter笔记本中运行tensorflow代码与在命令行中作为脚本运行tensorflow代码相比,在性能(速度)上有很大的差异

例如,下面是运行MNIST CNN教程的结果()

设置:

AWS实例,具有32个Xeon CPU、62GB内存、4个K520 GPU(4GB内存)

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、libcuft.so.7.5、libcuda.so.1、libcurand.so.7.5

培训步骤:2000年

Jupyter笔记本执行时间:

这不包括导入和加载数据集的时间,只包括培训阶段

CPU时间:用户8分钟58s,系统:0纳秒,总计:8分钟58s
墙时间:8分钟20秒

命令行执行:

这是执行完整脚本的时间

real 0m18.803s
用户0m11.326s
sys 0m13.200s

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


关于为什么会这样,有什么想法/建议吗?

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

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

我看到了nvidia smi统计数据,它显示了命令行方法中294MB的使用情况,Jupiter笔记本方法中984MB的使用情况


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

我猜这更像是jupyter/Notebook和命令行性能之间的问题。我在谷歌上快速搜索了一下,但没有找到太多。你是否需要使用笔记本,还是仅仅是一件舒适的事情?我发现一个ssh终端和一个带有ftp插件的基本文本编辑器(用来来回复制文档)在我使用过的大多数用例中都能像笔记本一样工作。tensorflow从jupyter看到你的GPU了吗?在创建会话时是否可以使用log\u device\u placement,如sess=tf.session(config=tf.ConfigProto(allow\u soft\u placement=True,log\u device\u placement=True))是的。它正在看到gpu。我使用了log_device_placement,日志与命令行中的日志相似。