我已经更新到Tensorflow 1.9和对象检测API的最新版本。在运行以前运行良好的培训/评估会议(我认为版本1.6)时,培训似乎按预期进行,但是我仅获得一个图像的评估和指标(第一个)。
在Tensorboard中,图像标记为“ Detections_Left_Groundtruth_Right”。评估步骤本身也非常迅速地进行,这使我相信这不仅仅是Tensorboard问题。
在model_lib.py中,我看到一些可疑的代码(在第349行附近):
eval_images = (
features[fields.InputDataFields.original_image] if use_original_images
else features[fields.InputDataFields.image])
eval_dict = eval_util.result_dict_for_single_example(
eval_images[0:1],
features[inputs.HASH_KEY][0],
detections,
groundtruth,
class_agnostic=class_agnostic,
scale_to_absolute=True)
这听起来像是评估者始终在第一张图像上进行一次评估。有没有人看到和/或解决这个问题?如果更改上述工作,我将进行更新。
答案 0 :(得分:1)
是的,对象检测仅支持1的批次大小进行评估。评估数等于评估步数。评估指标跨批次累计。
顺便说一句,在Tensorboard中查看更多评估图像的更改刚刚提交给master。
答案 1 :(得分:0)
使用model_main.py
模块时,我遇到相同的问题。但是,当使用object_detection/legacy/
目录中的train.py和eval.py函数时,我可以在张量板上看到多个图像。
我还没有足够的时间浏览代码以完全了解正在发生的事情。我认为这个eval函数不会调用您引用的代码部分,因为tensorboard中的图像是不同的。除了显示预测/ ground_truth的左右图像对之外,只显示了预测的边界框。
答案 2 :(得分:0)
对于Tensorflow 1.14并使用models,我将其添加到了配置中:
num_visualizations: <number of images to evaluate>
示例:
eval_config: {
num_visualizations: 288
num_examples: 288
max_evals: 288
}
我不确定num_examples或num_evals,但100%的配置中需要num_visualizations才能查看更多图像。
https://github.com/tensorflow/models/issues/5067
这在这里也被引用: Show more images in Tensorboard - Tensorflow object detection