使用Detectron2绘制Faster R CNN的损失函数曲线
import matplotlib.pyplot as plt
def plot_loss(log_file):
with open(log_file, 'r') as f:
lines = f.readlines()
train_loss, val_loss = [], []
for line in lines:
if 'iter:' in line and 'loss:' in line:
iter_num = int(line.split('iter:')[1].split(',')[0])
loss = float(line.split('loss:')[1])
if 'Train' in line:
train_loss.append((iter_num, loss))
else:
val_loss.append((iter_num, loss))
fig, ax = plt.subplots()
ax.plot([x[0] for x in train_loss], [x[1] for x in train_loss], label='train_loss')
ax.plot([x[0] for x in val_loss], [x[1] for x in val_loss], label='val_loss')
ax.set_xlabel('iteration')
ax.set_ylabel('loss')
ax.legend()
plt.show()
# 例子
plot_loss('log.txt')
下载地址
用户评论
这篇文章给我的感觉就是实实在在的,没有多余的修饰。
作者没有一味地追求华丽的词藻,反而用了很多很实用的技巧和建议。
这篇文档对于想要学习如何画损失函数曲线的人来说是一个很好的参考。