问题描述
最近,在学习 tensorboardX 时,生成了 log 文件,但是,执行 tensorboard --logdir=runs
的时候出现了下面的bug:
TensorBoard 1.13.1 at http://DESKTOP-T3AN8OM:6006 (Press CTRL+C to quit)
Traceback (most recent call last):
File “d:\anaconda3\lib\runpy.py”, line 193, in _run_module_as_main
“main”, mod_spec)
File “d:\anaconda3\lib\runpy.py”, line 85, in run_code
exec(code, run_globals)
File "D:\Anaconda3\Scripts\tensorboard.exe_main.py", line 9, in
File “d:\anaconda3\lib\site-packages\tensorboard\main.py”, line 57, in run_main
app.run(tensorboard.main, flags_parser=tensorboard.configure)
File “d:\anaconda3\lib\site-packages\absl\app.py”, line 300, in run
_run_main(main, args)
File “d:\anaconda3\lib\site-packages\absl\app.py”, line 251, in _run_main
sys.exit(main(argv))
File “d:\anaconda3\lib\site-packages\tensorboard\program.py”, line 228, in main
self._register_info(server)
File “d:\anaconda3\lib\site-packages\tensorboard\program.py”, line 274, in _register_info
manager.write_info_file(info)
File “d:\anaconda3\lib\site-packages\tensorboard\manager.py”, line 269, in write_info_file
payload = “%s\n” % _info_to_string(tensorboard_info)
File “d:\anaconda3\lib\site-packages\tensorboard\manager.py”, line 129, in _info_to_string
for k in _TENSORBOARD_INFO_FIELDS
File “d:\anaconda3\lib\site-packages\tensorboard\manager.py”, line 129, in
for k in _TENSORBOARD_INFO_FIELDS
File “d:\anaconda3\lib\site-packages\tensorboard\manager.py”, line 51, in
(dt - datetime.datetime.fromtimestamp(0)).total_seconds()),
OSError: [Errno 22] Invalid argument
代码文件:
from tensorboardX import SummaryWriter
writer = SummaryWriter('./runs')
for i in range(10):
writer.add_scalar('quadratic', i**2, i)
writer.add_scalar('exponential', 2**i, i)
writer.close()
解决方法
找了好几天的问题,后来,在这个 github issues 中找到了答案。
问题就是 Python 版本与 tensorboardX 版本不匹配。
需要将 tensorboardX 版本 回退到 1.12 版本,或者将 Python 更新到 ≥3.6.7 版本。
我这里由于下载的时候,直接下载的是 tensorboardX 最新版本(默认),但是 Python 版本却还是 3.6.5 , 因此出现了问题。
如果为了图方便的话,建议将 tensorboardX 版本 回退到 1.12 版本;我选择了更新 Python,主要是怕以后还会因为版本问题出现 bug,但现在来看可能麻烦一些。
更新 Python 是一件很容易出错的事情,建议用 Anaconda 管理 Python 版本,最新版的 Anaconda 已经支持 Python3.7 版本了。
我在更新 Python 的时候,出了一堆小问题,但还好现在不忙,正好有时间都解决了。
更新后,执行 tensorboard --logdir=runs
:
最后,希望这篇文章能帮助大家。