我经常重新运行相同的mxnet脚本,同时我尝试解决新脚本中的一些错误(而且我是新脚本mxnet)。当我尝试运行我的脚本时,经常会出现 GPU 内存不足的错误,当我nvidia-smi用来检查时,我看到的是:
Wed Dec 5 15:41:29 2018
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.24.02 Driver Version: 396.24.02 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:65:00.0 On | N/A |
| 0% 54C P2 68W / 300W | 10891MiB / 11144MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory | …Run Code Online (Sandbox Code Playgroud) 我注意到,对于我尝试运行的模型,我的 GPU 利用率仅为 30% 左右,而且通常由于 I/O,30% 的利用率会与 0% 利用率交替出现。为了解决添加到我的代码中的 I/OI,tf.contrib.data.prefetch_to_device如下所示:
dataset = tf.data.TFRecordDataset(self.filenames, "ZLIB", 384 * 1024 * 1024)
dataset = dataset.map(parse_func, 6)
dataset = dataset.prefetch(6)
dataset = dataset.apply(tf.contrib.data.prefetch_to_device("/gpu:0", 12))
#dataset = dataset.apply(tf.contrib.data.prefetch_to_device("/gpu:0", 2))
#dataset = dataset.apply(tf.contrib.data.prefetch_to_device("/gpu:0", 6))
self.iterator = dataset.make_initializable_iterator()
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我在尝试解决此问题时做了一些事情,包括:
buffer_size参数(对时间没有影响:我尝试了 12、6、2 和 1)dataset.prefetch行,以防它以某种方式干扰设备级预取(我也尝试了较小的数字,例如 2 和 1)当我为训练计时时,我没有发现这些变化有任何有意义的差异。此外,GPU 利用率继续遵循相同的模式,交替使用 0% 和 30% 的利用率。我还应该尝试什么?为什么使用 GPU 预取根本不会影响性能?感谢您的任何建议。
自从我更新到TensorFlow v1.4后,我无法运行TensorBoard.最初我遇到了一个与之相关的问题flags(就像我在这里发布的那样).事实上,我重新安装了TensorFlow,并了解到修复程序已经存在,但现在我收到此错误:
Traceback (most recent call last):
File "/opt/python/3.6.3/bin/tensorboard", line 7, in <module>
from tensorboard.main import run_main
ImportError: cannot import name 'run_main'
Run Code Online (Sandbox Code Playgroud)
无论是否提供日志目录,我都会收到此错误.什么是修复,我可以做些什么来调查?
我是Tensorflow ecoysystem的新手.我试图做的是打开上面引用的文件/opt/python/3.6.3/bin/tensorboard.我看到以下内容:
#!/opt/python/3.6.3/bin/python3.6
# -*- coding: utf-8 -*-
import re
import sys
from tensorboard.main import run_main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(run_main())
Run Code Online (Sandbox Code Playgroud)
我看了看tensorboard.main,我什么也没看见命名run_main,但我确实看到了def main,所以我试图改变import run_main,并run_main()以main但使我回flags错误.我究竟做错了什么?