原文：目标检测YOLO、SSD、RetinaNet、Faster RCNN、Mask RCNN(2) - 2019.01.07作者：油腻小年轻 - 简书学习，记录备忘.RetinaNet 是来自...
训练过程有 Evaluation 过程，可以供参考选择；模型预测示例参考：https://github.com/fizyr/keras-retinanet/blob/main/examples/ResNet50RetinaNet.ipynb
您好，请问下我在训练完模型之后，每个epoch都保存了一个.h模型文件，我如何选择出mAP最高的那个模型文件进行预测呢？具体是运行哪个文件呢？谢谢~
很显然，shape并不相同，请问下，是我哪个基础的地方理解出现了偏差，还请不吝赐教，感谢分享。OωO
觉得应该是作者注释的regression_batch：(batch_size, N, 4 + 1)以及labels_batch：(batch_size, N, num_classes + 1)，而模型的输出shape是经过 filter_detections这个function三次筛选出来的top K(k = min(300,筛选出来的目标数量))对应的boxes, scores 以及labels
再请问一下。最后关于y_true的生成，这里“最后生成的regression_batch, labels_batch 就是 loss function 中的 y_true，它们的 shape和模型预测出来的shape是一样的”稍微有些疑问，从loss的计算考虑，确实应该shape相同，但代码中关于regression_batch, labels_batch的生成仔细看了一下，
这个可以单独验证下锚框，图像处理中确实一般是左上为原点.
请问，为什么说是“直接预测目标锚框的左下角 (x1,y1) 和右上角 (x2,y2) 的坐标”在源码中，读取标注数据时有要求(x2,y2)均要大于(x1,y1) ,按左下和右上的话，图像坐标系原点和常用的数学中一样？（图像处理中一般左上作为原点）有点迷惑
filter_detections 函数里包含 NMS、max_detections、score_threshold，是在 NMS 处理后选取 Top-k 之后就没有继续的处理操作了.
不好意思，我看了整个代码，这个filter_detections文件之后就再没有对TOP k筛选出来的框进行下一步操作了，就直接把这些框和得分什么的都放到神经网络中用于做网络输出了。所以这个程序里在TOP K之后就是最终框了吗