【问题标题】:how to save logfile in torchvision mask rcnn to plot in tensorboard如何在torchvision mask rcnn中保存日志文件以在tensorboard中绘图
【发布时间】:2020-09-25 23:22:22
【问题描述】:

我正在尝试访问/保存日志文件,以绘制在训练我的 torchvision mask rcnn 模型时显示的损失和其他指标。

model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)

Epoch: [0]  [0/4]  eta: 0:01:11  lr: 0.000334  loss: 1.4949 (1.4949)  loss_classifier: 0.4294 (0.4294)  loss_box_reg: 0.3279 (0.3279)  loss_mask: 0.5124 (0.5124)  loss_objectness: 0.0564 (0.0564)  loss_rpn_box_reg: 0.1689 (0.1689)  time: 17.8587  data: 10.8542  max mem: 5687

据我所知,这些指标是由 metric_logger (engine.py) 生成的,我应该可以通过在我的 model.train() 中添加一个 custom_callback 参数来保存它们

model.train(custom_callbacks = callbacks)
for epoch in range(num_epochs):
    print ('+++++++++++++++++++++++++++')
    # train for one epoch, printing every 10 iterations
    train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=10)

此时,除了显示没有要显示的指标的张量板页面外,没有任何工作。 只需将损失附加到列表中,我就会很高兴...

谢谢

【问题讨论】:

  • 为什么你认为你“应该能够通过向我的 model.train() 添加 custom_callback arg 来保存它们”?
  • Hello Berriel :我读到通过将参数 custom_callback 传递给 model.train() 函数,pytorch 将返回不同损失的值。不幸的是,这种方法根本不起作用
  • 您是否在 PyTorch 之上使用任何类型的框架? .train() 应该只接受 mode:bool。试图弄清楚你在哪里读到的。很难提供任何指导,因为相关代码隐藏在您的自定义 train_one_epoch 中。

标签: python pytorch google-colaboratory torchvision


【解决方案1】:

我遇到了同样的问题,我使用猴子补丁来覆盖 train_one_epoch 函数以返回 metric_logger 实例:

from engine import train_one_epoch, evaluate
import math

def train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq):
    model.train()
    ...
    return metric_logger

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-27
    • 2019-11-17
    • 2022-11-03
    • 1970-01-01
    • 2018-02-04
    • 2018-06-19
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多