PyTorch使用tensorboard的SummaryWriter报错问题解决方案

原创
ithorizon 9个月前 (07-01) 阅读数 217 #Python
目录

    PyTorch使用tensorboard可以显示网络运行情况,但有时使用SummaryWriter时遇到Segmentation fault不正确。
    利用python3的faulthandler,可定位到出错的代码行,具体操作有两种方法如下:
    (1) 在代码中写入faulthandler

    import faulthandler
    # 在import之后直接添加以下启用代码即可
    faulthandler.enable()
    # 后边正常写你的代码

    (2)直接通过命令行来启用,运行时添加-X faulthandler参数即可:

    python -X faulthandler your_script.py

    不正确代码:

    import xxx
    from torch.utils.tensorboard import SummaryWriter
    import yyy
    log_dir = './run_logs'
    self.writer = SummaryWriter(log_dir)

    报错如下:

     File "/opt/conda/lib/python3.7/site-packages/tensorboard/compat/__init__.py", line 45 in tf
      File "/opt/conda/lib/python3.7/site-packages/tensorboard/lazy.py", line 50 in load_once
      File "/opt/conda/lib/python3.7/site-packages/tensorboard/lazy.py", line 97 in wrapper
      File "/opt/conda/lib/python3.7/site-packages/tensorboard/lazy.py", line 65 in __getattr__
      File "/opt/conda/lib/python3.7/site-packages/tensorboard/summary/writer/event_file_writer.py", line 72 in __init__
      File "/opt/conda/lib/python3.7/site-packages/torch/utils/tensorboard/writer.py",line 66 in __init__
      File "/opt/conda/lib/python3.7/site-packages/torch/utils/tensorboard/writer.py",line 256 in _get_file_writer
      File "/opt/conda/lib/python3.7/site-packages/torch/utils/tensorboard/writer.py", line 225 in __init__

    经过查询,发现极有大概是导包(from torch.utils.tensorboard import SummaryWriter)顺序引起的问题。参考链接:[TensorBoard] The different order of import SummaryWriter may cause Segmentation fault

    将from torch.utils.tensorboard import SummaryWriter顺序调前,可以顺利导包和实例化了。

    import xxx
    from torch.utils.tensorboard import SummaryWriter
    import yyy

    改为

    from torch.utils.tensorboard import SummaryWriter
    import xxx
    import yyy

    到此这篇涉及PyTorch使用tensorboard的SummaryWriter报错的文章就介绍到这了,更多相关PyTorch SummaryWriter报错内容请搜索IT视界以前的文章或继续浏览下面的相关文章期待大家以后多多拥护IT视界!


    本文由IT视界版权所有,禁止未经同意的情况下转发

    文章标签: Python


    热门