如何使用Torch Framework绘制训练日志中的损失

时间:2019-04-27 00:27:47

标签: python torch

我正在用Torch(不是pytorch)训练车道检测模型。训练脚本还会创建一个如下所示的日志文件:

 | Epoch: [1][1/88880][1]  Time 4.91  LR 0.01000  Err1 0.09779 (0.09779)  Err2 0.03161 (0.03161)    
 | Epoch: [1][2/88880][2]  Time 1.51  LR 0.01000  Err1 0.16534 (0.13157)  Err2 0.03048 (0.03105)    
 | Epoch: [1][3/88880][3]  Time 1.57  LR 0.01000  Err1 0.33015 (0.19776)  Err2 0.15016 (0.07075)    
 | Epoch: [1][4/88880][4]  Time 1.49  LR 0.01000  Err1 0.12389 (0.17929)  Err2 0.03932 (0.06289)    
 | Epoch: [1][5/88880][5]  Time 1.49  LR 0.01000  Err1 0.13950 (0.17133)  Err2 0.03877 (0.05807)    
 | Epoch: [1][6/88880][6]  Time 1.49  LR 0.01000  Err1 0.26979 (0.18774)  Err2 0.03070 (0.05351)    
 | Epoch: [1][7/88880][7]  Time 1.52  LR 0.01000  Err1 0.41120 (0.21967)  Err2 0.04841 (0.05278)

现在,我想绘制每次迭代的损失。火炬中有没有一种方法可以从火车记录中绘制损失?

我还有第二个问题。括号中的第一个损失和第二个损失有什么区别?

1 个答案:

答案 0 :(得分:0)

  1. 第一个问题:
    • 您可以记录每次迭代的损失以及迭代索引(1/88880 <-1是迭代索引)。
    • 使用matplotlib软件包对其进行绘制。
indices = []
losses = []

for loop:
   losses.append(loss.item())
   indices.append(index)

# plot it
import matplotlib.pyplot as plt
plt.plot(indices, losses)
  1. 第二个问题: 第一个损失是前loss个预测中的batch,因此第二个损失也是如此。