PyTorch使用tensorboard的SummaryWriter报错

PyTorch使用tensorboard可以显示网络运行情况,但偶尔使用SummaryWriter时遇到Segmentation fault错误。

利用python3的faulthandler,可定位到出错的代码行,具体操作有两种方式如下:

(1) 在代码中写入faulthandler

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

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

bash 复制代码
python -X faulthandler your_script.py

错误代码:

bash 复制代码
import xxx
from torch.utils.tensorboard import SummaryWriter
import yyy

log_dir = './run_logs'
self.writer = SummaryWriter(log_dir)

报错如下:

bash 复制代码
 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顺序调前,可以顺利导包和实例化了。

bash 复制代码
import xxx
from torch.utils.tensorboard import SummaryWriter
import yyy

改为

bash 复制代码
from torch.utils.tensorboard import SummaryWriter
import xxx
import yyy
相关推荐
寒山李白2 小时前
解决 python-docx 生成的 Word 文档打开时弹出“无法读取内容“警告
python·word·wps·文档·docx·qoder
2401_832365523 小时前
JavaScript中rest参数(...args)取代arguments的优势
jvm·数据库·python
Sirius.z3 小时前
第J3周:DenseNet121算法详解
python
2301_779622413 小时前
Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】
jvm·数据库·python
2301_766283443 小时前
c++如何将控制台输出保存到文件_cout重定向到txt【详解】
jvm·数据库·python
小康小小涵5 小时前
基于ESP32S3实现无人机RID模块底层源码编译
linux·开发语言·python
lzjava20245 小时前
Python的函数
开发语言·python
Awesome Baron5 小时前
skill、tool calling、MCP区别
开发语言·人工智能·python
测试员周周6 小时前
【AI测试系统】第4篇:告别硬编码!基于 Markdown + Python 的 Skill 引擎设计:让 AI 测试系统拥有无限扩展的“灵魂”
人工智能·python·测试
武帝为此6 小时前
【Selenium 屏幕截图】
python·selenium·测试工具