Python – 深度学习训练过程使用matplotlib.pyplot实时动态显示loss和acc曲线
1 深度学习训练过程中实时动态显示loss和acc曲线
可参考代码如下:
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
if __name__ == '__main__':
train_loss = 5
val_loss = 5
train_acc = 0.0
val_acc = 0.0
x = []
train_loss_list = []
val_loss_list = []
train_acc_list = []
val_acc_list = []
for epoch in range(200):
# 生成数据,此处应根据实际训练过程获取训练集loss和acc
# 以及验证集loss和acc
train_loss -= epoch * 0.1
val_loss -= epoch * 0.11
train_acc += epoch*0.01
val_acc += epoch*0.011
x.append(epoch)
train_loss_list.append(train_loss)
val_loss_list.append(val_loss)
train_acc_list.append(train_acc)
val_acc_list.append(val_acc)
plt.figure(figsize=(3, 6), dpi=100)
# 创建两行一列的图,并指定当前使用第一个图
plt.subplot(2, 1, 1)
try:
train_loss_lines.remove(train_loss_lines[0]) # 移除上一步曲线
val_loss_lines.remove(val_loss_lines[0])
except Exception:
pass
train_loss_lines = plt.plot(x, train_loss_list, 'r', lw=1) # lw为曲线宽度
val_loss_lines = plt.plot(x, val_loss_list, 'b', lw=1)
plt.title("loss")
plt.xlabel("epoch")
plt.ylabel("loss")
plt.legend(["train_loss",
"val_loss"])
# # 创建两行一列的图,并指定当前使用第二个图
plt.subplot(2, 1, 2)
try:
train_acc_lines.remove(train_acc_lines[0]) # 移除上一步曲线
val_acc_lines.remove(val_acc_lines[0])
except Exception:
pass
train_acc_lines = plt.plot(x, train_acc_list, 'r', lw=1) # lw为曲线宽度
val_acc_lines = plt.plot(x, val_acc_list, 'b', lw=1)
plt.title("acc")
plt.xlabel("epoch")
plt.ylabel("acc")
plt.legend(["train_acc",
"val_acc"])
plt.show()
plt.pause(0.1) # 图片停留0.1s
2 结果
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Python – 深度学习训练过程使用matplotlib.pyplot实时动态显示loss和acc曲线
原文链接:https://www.stubbornhuang.com/1445/
发布于:2021年07月19日 13:54:53
修改于:2023年06月26日 21:28:34
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
50