我已经成功地训练(微调(并验证了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损失的最佳模型是在步骤13k,即ckpt-14。然而,我也有/test.record,我想在上面测试基于ckpt.14的模型。我能做什么?我试着用ckpt-14.index e ckpt-14.data-…和名为"的文件创建一个单独的文件夹;检查点";只包含ckpt-14及其时间戳,然后通过在tf_record_put_reader中将validation.record替换为test.record.来启动评估过程。
这是正确的吗?有没有一种合适的方法可以使用tensorflow 2对象检测api测试基于检查点的模型?
您可以在同一个模型上同时进行训练和测试。。。。。。但是,如果你只有一个GPU,并且使用大型数据集进行训练,那么可能不可能使用同一个GPU进行测试,因为这会导致内存错误。。。。。一个好的方法是使用相同的代码并使用变通方法来使用CPU进行测试。。。。。。。测试周期每1000步进行一次,在Tensorboard上,你可以看到测试和评估,你还可以看到与地面实况并排的边界框。。。。。。
我将尝试分享并行训练和测试的代码。。。。。在训练中,它将使用GPU,在测试中它将使用CPU。。。。。它一直在为我工作,毫无疑问,它也应该为你工作。。。。。