如何使用 Tensorflow 2 对象检测 API 恢复微调模型以进行测试?
Posted
技术标签:
【中文标题】如何使用 Tensorflow 2 对象检测 API 恢复微调模型以进行测试?【英文标题】:How to restore a fine-tuned model with Tensorflow 2 Object Detection API for testing? 【发布时间】:2021-12-18 18:15:05 【问题描述】:我已经成功训练(微调)并验证了来自 Tensorflow Model Zoo 2 的对象检测模型,使用以下配置:
...
train_input_reader:
label_map_path: "/label_map.pbtxt"
tf_record_input_reader
input_path: "/train.record"
eval_config:
metrics_set: "coco_detection_metrics" #coco_detection_metrics
use_moving_averages: false
batch_size: 1;
eval_input_reader:
label_map_path: "/label_map.pbtxt"
shuffle: false
num_epochs: 1
tf_record_input_reader
input_path: "/validation.record"
...
然后我通过分析 Tensorboard 上的性能注意到,基于 eval loss 的最佳模型位于步骤 13k 即 ckpt-14。 但是,我也有 /test.record,我想在其上测试基于 ckpt.14 的模型。我能做什么?我尝试使用 ckpt-14.index e ckpt-14.data-... 创建一个单独的文件夹,并且名为“checkpoint”的文件仅包含 ckpt-14 及其时间戳,然后通过将validation.record替换为测试记录。在 tf_record_input_reader 中。
正确吗?有没有正确的方法来测试基于带有 tensorflow 2 对象检测 api 的检查点的模型?
【问题讨论】:
【参考方案1】:您可以同时在同一个模型上训练和测试......但是如果您有一个 GPU,并且使用大型数据集进行训练,则可能无法使用同一个 GPU 运行测试,因为它会导致内存错误.....一个好方法是使用相同的代码并使用变通方法使用 CPU 进行测试.......测试周期每 1000 步在 Tensorboard 上进行一次,你可以看到测试和评估,你还会看到并排的边界框和ground truth……
我将尝试分享并发训练和测试的代码.....训练使用GPU,测试使用CPU......它一直在为我工作,没有怀疑,它也应该对你有用.....
【讨论】:
以上是关于如何使用 Tensorflow 2 对象检测 API 恢复微调模型以进行测试?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Tensorflow 2 对象检测 API 冻结了哪些层?
如何解决 Tensorflow 2 对象检测 API 中的 UnicodeError
如何修改 ssd mobilenet 配置以使用 tensorflow 对象检测 API 检测小对象?