If knowledge can create problems, it is not throught ignorance that we can solve them.
Issac Asimov
If knowledge can create problems, it is not throught ignorance that we can solve them.
Issac Asimov
九月发生了两件值得高兴的事情:通过了博士开题答辩,以及进组以来的第一篇论文(综述)见刊了!希望今后再接再厉🎉🎉
长滩的早上通常被浓浓的海雾所笼罩,温度很宜人。穿过downtown街道上隐约的甜腻与骚臭气息,一路向南到海边,再一路往西经过成排的度假酒店和棕榈树,就到了2024 Annual Meeting of the Ecological Society of America的会场。然后在数个不同的会议室之间来回穿梭听报告,直到傍晚再滑着滑板回到旅馆,或者在沿途路边的墨西哥餐车买个torta当晚饭。 这样子听会议的日子重复了接近一个礼拜,笔记本上的潦草记录也飞速增长了好几页。碰到几位课题感兴趣的教授,冲上去提问交流并在会后发了跟进的邮件——属实是没想到身为I人的自己原来也能social至此。会议的规模很大,分会场的主题也很多。我试图在每一个感兴趣的话题上都了解到一些前沿进展,给自己9月份的博士开题积攒些灵感。期间还参观了当地中产社区里的花园农场,走出学术界听了听当地居民在生活中面临着什么食品问题。 最后一天只有上午有活动,而我预定了夜里的飞机,于是下午到海边的景区逛了逛。不得不说风景确实很美,彩色的小屋、游艇、草坪和灯塔在午后晴朗的天空下明净艳丽。可惜没能去逛水族馆和观鲸,希望以后有机会再见吧!
使用自定义的类别和数据集训练了MMDetection的目标检测模型,需要汇报模型的precision, recall等等各项指标。在MMDetection的官网文档里只找到了生成混淆矩阵的代码,但似乎并不支持直接给出其他常见的评价指标(见Github项目的issue#6212和issue#8791。搜索一番后发现CSDN博客上有人分享了如何通过在tools/analysis_tools/confusion_matrix.py的main()函数末尾添加代码,从而得到precision, recall, F1, AP, AR。然而实际运行后发现其实有bug,并且原理上也有一些问题,所以进行了适当修改。 总体思路是,先从混淆矩阵中计算出每个分类的真阳性样本量FP、假阳性样本量TP、假阴性样本量FN,然后按照公式计算各分类标签的precision和recall。 需要注意的是,precision和recall的长度其实比分类数量多1。这是因为前面生成confusion matrix的时候,在已有分类的后边还加了一个“background”的标签。precision和recall的最后一位其实就是“background”的精确率和召回率,并且总是为零。从混淆矩阵里面也可以看出,background的真阳性比例一定是0%。在计算平均precision和recall的时候,我们不需要考虑这一个额外的分类。 MMDetection官方文档里的normalized confusion matrix,"background"分类的真阳性比例一定是0% 需要在main()函数末尾添加的代码为: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 TP = np.diag(confusion_matrix) FP = np.sum(confusion_matrix, axis=0) - TP FN = np.sum(confusion_matrix, axis=1) - TP precision = TP / (TP + FP) recall = TP / (TP + FN) average_precision = np.mean(precision[:-1]) average_recall = np.mean(recall[:-1]) f1 = 2* (average_precision * average_recall) / (average_precision + average_recall) print('\n===Averaging all classes===') print('AP:', average_precision) print('AR:', average_recall) print('F1:', f1) print('Classes', dataset.metainfo['classes'] + ('background', )) print('Precision', precision) print('Recall', recall) 然后按照官方文档的说明,正常运行代码就可以输出结果了。 1 python tools/analysis_tools/confusion_matrix.py ${CONFIG} ${DETECTION_RESULTS} ${SAVE_DIR} --show 打印内容形如: ...
凭借曾经在E志者学到的功夫,拆开笔记本并添加了一条固态硬盘(SSD)。 ...
“这欲望的湖泊,很多人都在溺爱它。” ...