如何在 Tensorflow 对象检测 API v2 中同时训练和评估

use*_*375 3 python object-detection tensorflow object-detection-api tensorflow2.0

我想知道如何在 Tf2 对象检测 API 中的每个检查点训练和评估模型。在文档中,他们建议训练然后评估模型

火车

python object_detection/model_main_tf2.py \
    --pipeline_config_path=${PIPELINE_CONFIG_PATH} \
    --model_dir=${MODEL_DIR} \
    --alsologtostderr
Run Code Online (Sandbox Code Playgroud)

评价

python object_detection/model_main_tf2.py \
    --pipeline_config_path=${PIPELINE_CONFIG_PATH} \
    --model_dir=${MODEL_DIR} \
    --checkpoint_dir=${CHECKPOINT_DIR} \
    --alsologtostderr
Run Code Online (Sandbox Code Playgroud)

我想要的是进行训练,并在创建每个检查点(1000 个步骤)后进行评估。我知道在 TF-1 对象检测 API 中,每 1000 个步骤都会自动进行评估,并且我想在 TF-2 中复制

dtl*_*m26 5

根据 model_main_tf2.py,他们在每个时期留下了一个用于评估的标志,但它仅适用于分布式训练: https ://github.com/tensorflow/models/blob/master/research/object_detection/model_main_tf2.py# L37-L38

然而,我认为当他们通过包含评估数据添加一些标志时,他们很快就会提供它:https: //github.com/tensorflow/models/blob/master/research/object_detection/model_main_tf2.py#L39-L44

有关更多详细信息,您可以在此处查看它们的训练函数,该函数描述了它们的训练工作流程。您可以看到他们尚未实施评估: https://github.com/tensorflow/models/blob/master/research/object_detection/model_lib_v2.py#L419

因此,您必须通过创建一个新的 train_file 来解决这个问题,该文件使用此处的库以及他们创建的一些评估方法,并将其附加到您的训练文件以评估每个时期。或者你可以等一下:D