文章目录
- [ log日志画图]分割模型训练结束生成相关日志运用代码画图
- 我的log文件:
- 画图:
- 1.loss
- 1.1 loss是干嘛的
- 1.2 代码
- 1.3 生成图
- 2.DICE.IOU
- 2.1 DICE,IOU是干嘛的(常规介绍)
- 2.2 代码
- 2.3 生成图
- 小白tip
[ log日志画图]分割模型训练结束生成相关日志运用代码画图
我的log文件:
这里大家看一下名字设置的和我一样吗,不一样后面自己要更改。
画图:
1.loss
1.1 loss是干嘛的
(常规介绍)
模型训练loss值是用来度量模型在训练数据上的拟合程度和预测误差的指标。
在训练过程中,模型通过最小化loss值来优化模型的参数,使其能够更好地拟合训练数据。当loss值越小,说明模型在训练数据上的预测结果与真实值的差距越小,表示模型的性能越好。
通过监控和分析loss值的变化,可以帮助我们理解模型的训练过程。如果loss值在训练过程中持续下降,表示模型正逐渐学习到数据的特征并进行拟合;如果loss值在训练过程中出现波动,可能表示模型遇到了一些困难,需要调整学习率或其他参数来优化模型;如果loss值在训练过程中停止下降或者开始上升,可能表示模型已经过拟合了训练数据,需要采取一些正则化方法来避免过拟合。
总之,通过监控和分析loss值,可以帮助我们追踪模型的训练过程和性能,并根据需要对模型进行调整和优化。
1.2 代码
from matplotlib import rcParams
import matplotlib.pyplot as plt
import re
# 显示中文
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = 'SimSun,Times New Roman'
text = ''
file = open('log2.txt') # 您的log.txt文件放在与python文件同级目录下
for line in file:
text += line
file.close()
all_list = re.findall('Train loss: .*[0-9]', text)
train_loss = []
for i in all_list:
train_loss.append(float(i.split('Train loss: ')[1].split(' ||')[0]))
plt.plot(train_loss, label='Train loss')
plt.xlabel('Epoch')
plt.ylabel('Loss')
plt.title('Training Loss')
plt.legend(loc='best')
plt.show()
1.3 生成图
2.DICE.IOU
2.1 DICE,IOU是干嘛的(常规介绍)
DICE(Diversity, Independence, Complete Explanation)是一种用于评估机器学习模型性能的指标。在分割模型中,DICE系数被广泛应用。
DICE系数用于度量两个集合的相似性,通常用于评估分割模型的预测准确性。在分割任务中,模型预测出的分割结果与真实的分割结果进行比较。DICE系数的计算公式如下:
DICE = (2 * TP) / (2 * TP + FP + FN)
其中,TP表示正确预测的正样本数量,FP表示错误预测的正样本数量,FN表示未能预测到的正样本数量。DICE系数的取值范围为[0, 1],数值越接近1表示模型预测结果越接近真实结果,数值越接近0表示模型预测结果与真实结果差异越大。
在分割模型中,DICE系数常被用作评估模型的性能指标。通过计算模型预测结果与真实结果之间的DICE系数,可以衡量模型在分割任务中的准确性和稳定性。较高的DICE系数通常表示模型预测结果与真实结果较为一致,而较低的DICE系数可能暗示模型存在较大的误差或不准确性。
因此,DICE系数在分割模型中的作用是评估模型的预测准确性,并提供一种量化的衡量方式,帮助研究人员和从业者比较不同模型的性能,并进行模型的优化和改进。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
IOU(Intersection over Union)被用于评估分割结果的准确性。IOU衡量了预测分割结果与真实分割结果之间的重叠程度。
具体来说,IOU是通过计算预测分割结果的边界框(或像素)与真实分割结果的边界框(或像素)之间的交集面积除以它们的并集面积得到的。IOU的取值范围是0到1,表示预测分割结果与真实分割结果的重叠程度,数值越大表示分割结果越准确。
在训练过程中,常常使用IOU作为损失函数的一部分,帮助模型学习到更准确的分割结果。同时,在评估模型性能时,也会使用IOU作为一个重要的指标来衡量模型的分割准确性。
公式形式如下: IOU = (交集面积) / (并集面积)
2.2 代码
from matplotlib import rcParams
import matplotlib.pyplot as plt
import re
# 显示中文
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = 'SimSun,Times New Roman'
text = ''
file = open('log2.txt') # 您的log.txt文件放在与python文件同级目录下
for line in file:
text += line
file.close()
all_list_iou = re.findall('IOU: .*[0-9]', text)
all_list_dice = re.findall('DICE: .*[0-9]', text)
iou_scores = []
dice_scores = []
for i in all_list_iou:
iou_scores.append(float(i.split('IOU: ')[1].split(', DICE:')[0]))
for i in all_list_dice:
dice_scores.append(float(i.split('DICE: ')[1].split(' ||')[0]))
plt.plot(iou_scores, label='IOU')
plt.plot(dice_scores, label='DICE')
plt.xlabel('Epoch')
plt.ylabel('Score')
plt.title('IOU and DICE Scores')
plt.legend(loc='best')
plt.show()
2.3 生成图
小白tip
训练完成后可能没有log.txt文件哈,小白看这里!这里可能会生成一个日期时间(或者其他任何).log文件,你直接打开文件点击查看,这个文件扩展名给它打上勾,然后回去到那个日志文件直接更改成log.txt