在评估 Tensorflow 的对象检测 API 中的实例分割模型时,我希望拥有自定义的指标列表,可以总结如下;
我目前测试的是通过调整 pycocotools 的 PythonAPI 中的一些代码以及 Tensorflow 研究模型中的附加指标文件来修改现有的 coco 评估指标。目前COCO评估的默认输出值如下
Precision/mAP
Precision/mAP@.50IOU
Precision/mAP@.75IOU
Precision/mAP (small)
Precision/mAP (medium)
Precision/mAP (large)
Recall/AR@1
Recall/AR@10
Recall/AR@100
Recall/AR@100 (small)
Recall/AR@100 (medium)
Recall/AR@100 (large)
Run Code Online (Sandbox Code Playgroud)
coco_detection_metrics所以我决定首先在我的领域使用eval_config.config文件里面用于训练
eval_config: {
metrics_set: "coco_detection_metrics"
}
Run Code Online (Sandbox Code Playgroud)
并通过向统计列表和统计摘要字典中添加更多项目来进行多次编辑cocoeval.py(cocotools.py与值的数量成比例),以获得所需的结果。出于演示目的,我仅展示一个示例,即在 IOU=0.5 的精度之上添加 IOU=0.55 的精度。
所以,这是cocoeval.pyCOCOeval中类的修改方法
def _summarizeDets():
stats[1] = _summarize(1, iouThr=.5, maxDets=self.params.maxDets[2])
stats[12] = _summarize(1, iouThr=.5, maxDets=self.params.maxDets[2])
Run Code Online (Sandbox Code Playgroud)
我有一个很长的数据框,其中近 56 列中有 1 列具有许多不同的值,而其余数据根据第一列 ID 发生变化。这是一个例子
ID chrom left right ref_seq var_type zygosity transcript_name
0 chr1 1590327 1590328 a SNP Hom NM_033486
0 chr1 1590327 1590328 a SNP Hom NM_033487
0 chr1 1590327 1590328 a SNP Hom NM_033488
0 chr1 1590327 1590328 a SNP Hom NM_033489
0 chr1 1590327 1590328 a SNP Hom NM_033492
0 chr1 1590327 1590328 a SNP Hom NM_033493
1 chr1 1590526 1590527 g SNP Hom NM_033486
1 chr1 1590526 1590527 g SNP Hom NM_033487
1 …Run Code Online (Sandbox Code Playgroud) 我想foverlaps在一个值位于重叠范围之间的设置中,使用从单独列中获取的最大数量的范围ID .虽然我对包的基本设置非常熟悉,但我找不到执行上述功能的方法.
这是一个小例子
>df1
AthleteID Distance
Athlete1 5
Athlete2 10
Athlete3 25
>df2
CheckpointID Start End Score
Checkpoint1 1 8 2
Checkpoint2 7 12 4
Checkpoint3 9 15 6
Checkpoint4 16 26 8
Checkpoint5 20 30 10
Run Code Online (Sandbox Code Playgroud)
根据以上内容,最终的data.frame应如下所示
>df1
AthleteID Distance Score CheckpointID
Athlete1 5 2 Checkpoint1
Athlete2 10 6 Checkpoint3
Athlete3 25 10 Checkpoint5
Run Code Online (Sandbox Code Playgroud)
=========================
编辑
最后一个问题; 我也有兴趣了解如何根据运动员ID使用不同的检查点分数(相同的间隔).这是一个修改过的分数表
>df2
CheckpointID AthleteID Start End Score
Checkpoint1 Athlete1 1 8 2
Checkpoint2 Athlete1 7 12 4
Checkpoint3 Athlete1 9 …Run Code Online (Sandbox Code Playgroud)