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

PyTorch使用tensorboard可以显示网络运行情况,但偶尔使用SummaryWriter时遇到Segmentation fault错误,这篇文章主要介绍了PyTorch使用tensorboard的SummaryWriter报错问题解决方案,需要的朋友可以参考下

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报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持vb.net教程C#教程python教程SQL教程access 2010教程Visual Basic 2010 2012 2013 从入门到精通|xin3721自学网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以回答这个问题。以下是一个使用 PyTorchTensorBoard 的示例代码: ```python import torch from torch.utils.tensorboard import SummaryWriter # 创建一个 SummaryWriter 对象,用于记录 TensorBoard 日志 writer = SummaryWriter() # 定义一个简单的神经网络模型 class Net(torch.nn.Module): def __init__(self): super(Net, self).__init__() self.fc1 = torch.nn.Linear(10, 5) self.fc2 = torch.nn.Linear(5, 1) def forward(self, x): x = torch.nn.functional.relu(self.fc1(x)) x = self.fc2(x) return x # 创建一个模型实例 net = Net() # 定义一个输入张量 input_tensor = torch.randn(1, 10) # 将模型和输入张量传入 SummaryWriter 对象,记录模型结构和输入张量 writer.add_graph(net, input_tensor) # 定义一个损失函数和优化器 criterion = torch.nn.MSELoss() optimizer = torch.optim.SGD(net.parameters(), lr=0.01) # 训练模型 for i in range(100): # 随机生成一个训练样本 x = torch.randn(1, 10) y = torch.randn(1, 1) # 前向传播 output = net(x) # 计算损失 loss = criterion(output, y) # 反向传播 optimizer.zero_grad() loss.backward() optimizer.step() # 记录损失值和训练次数到 TensorBoard writer.add_scalar('Loss', loss.item(), i) # 关闭 SummaryWriter 对象 writer.close() ``` 这个示例代码演示了如何使用 PyTorchTensorBoard 记录神经网络模型的结构和训练过程中的损失值。具体来说,代码中定义了一个简单的神经网络模型,使用 SummaryWriter 对象记录了模型结构和输入张量,然后使用随机生成的训练样本训练模型,并将损失值和训练次数记录到 TensorBoard 中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值