Closed qianmeng19 closed 5 months ago
是测试集的结果吗?测试集没有ground truth,只能用验证集验证测试两用
是的是测试集结果,我使用Train13和Train13作为训练集和测试集,使用Xie2019模型,结果却如图,不应该是为0或者1才是对的嘛
模型的输出结果会经过sigmoid激活到0~1之间,0或者1是真值,模型好的预测只会很靠近0或者1,几乎不会为0或者1
那怎样的结果才是模型好的预测呢
可以看看博主的测试结果吗
https://github.com/iamstarlee/Multi-label-Sewer-Classification/blob/cd4bd6ba32ef42ba5d4a909e7c7d8bec85367d2d/metrics.py#L124-L126 需要先用inference.py进行推理,然后用calculate_results.py计算推理结果,从而判断模型的好坏,metrics.py里计算指标的时候会把高于阈值的算为正样本,低于的算为负样本
我在计算指标之前就用阈值将结果置为0或者1了
感谢博主分享,请问怎样在计算指标之前就用阈值将结果置为0或者1,还有就是阈值一般设置为多少
https://github.com/iamstarlee/Multi-label-Sewer-Classification/blob/cd4bd6ba32ef42ba5d4a909e7c7d8bec85367d2d/metrics.py#L99-L129 第125行,Np[k]是第k类的Total number of Predictions,这里就是在取预测值大于阈值(一般为0.5)的结果
感谢博主的回答,但我想像博主一样将[metrics.py]中的评估函数运用到inference.py中进行推理,需要怎样修改代码呢
运行inference.py就会得到推理结果,再运行calculate_results.py就能得到推理结果的指标,里面会调用metrics.py
会不会出现inference.py就会得到推理结果很差,但是运行calculate_results.py得到的结果也还行。我想知道calculate_results.py的具体计算公式,论文里有吗
请问博主是使用了所有数据集进行训练吗
calculate_results.py是基于inference.py的结果计算的,calculate_results.py的计算公式都在metrics.py里,论文的附录里有
我是用的整个数据集训练的
请问博主试过只使用一个文件train13训练吗,我使用一个文件训练的结果好像不行
请问博主执行calculate_results.py时遇到这个报错是结果有问题吗E:\Multi-label-Sewer-Classification-main\metrics.py:173: RuntimeWarning: invalid value encountered in scalar divide F2_normal = (5 precision_k[-1] recall_k[-1])/(4*precision_k[-1] + recall_k[-1])
这种看上去像除了0,可以试着print分母的precision和recall
train13是我从原始数据集中摘出来的子集,可能因为数量少导致效果不好
我的测试结果如图,这种结果是不是无效的?