小编civ*_*ivy的帖子

如何在 Tensorflow 对象检测 API 中添加自定义评估指标?

在评估 Tensorflow 的对象检测 API 中的实例分割模型时,我希望拥有自定义的指标列表,可以总结如下;

  • IOU 的精度值为 0.5-0.95,增量为 0.05
  • IOU 的召回值为 0.5-0.95,增量为 0.05
  • 精确度和召回率的 AUC 值在 0-1 之间,增量为 0.05

我目前测试的是通过调整 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.pycocotools.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)

以及coco_tools.py …

tensorflow tensorboard object-detection-api

8
推荐指数
0
解决办法
1943
查看次数

在 R 中连接重复的数据帧值

我有一个很长的数据框,其中近 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)

r duplicates dataframe

2
推荐指数
1
解决办法
771
查看次数

使用R中的foverlaps选择分数最高的范围ID

我想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)

r dataframe data.table

0
推荐指数
1
解决办法
114
查看次数