首页 > 解决方案 > TensorBoard:评估 TensorFlow 模型的质量

问题描述

我想使用名为“efficientdet_d1_coco17_tpu-32”的预训练 TensorFlow2 模型来训练和评估神经网络。这是一个针对对象检测的沙盒示例。训练数据集由 130 张图像组成,测试数据集有 15 张。目前我将工作分为两个阶段:(i)训练和(ii)评估。为了训练,我使用以下 bash 脚本:

export PIPELINE_CONFIG_PATH=models/my_efficientdet_d1_coco17_tpu-32/pipeline.config
export MODEL_DIR=models/my_efficientdet_d1_coco17_tpu-32
export NUM_TRAIN_STEPS=25000
export NUM_EVAL_STEPS=25
export SAMPLE_1_OF_N_EVAL_EXAMPLES=1

python ./model_main_tf2.py \
    --pipeline_config_path=${PIPELINE_CONFIG_PATH} \
    --model_dir=${MODEL_DIR} \
    --num_train_steps=${NUM_TRAIN_STEPS} \
    --num_eval_steps=${NUM_EVAL_STEPS} \
    --sample_1_of_n_eval_examples=${SAMPLE_1_OF_N_EVAL_EXAMPLES} \
    --alsologtostderr

训练完成后(运行 25000 次迭代),我使用类似的 bash 脚本启动评估:

export PIPELINE_CONFIG_PATH=models/my_efficientdet_d1_coco17_tpu-32/pipeline.config
export MODEL_DIR=models/my_efficientdet_d1_coco17_tpu-32
export CHECKPOINT_DIR=${MODEL_DIR}

python ./model_main_tf2.py \
    --pipeline_config_path=${PIPELINE_CONFIG_PATH} \
    --model_dir=${MODEL_DIR} \
    --checkpoint_dir=${CHECKPOINT_DIR} \
    --alsologtostderr

但是,当我在 TensorBoard 上查看训练和评估结果时,我在图表上只看到一个评估点。请您指导我,如何根据多个点制作评估图?我认为这是--num_eval_steps参数,但显然不是这样。任何指导将不胜感激。

根据类似的问题,评估使用来自最终检查点的数据。是否可以指示 TensorFlow/TensorBoard 使用所有可用的检查点?我还注意到随着训练的进行,检查点文件会逐渐被删除。是否有可能保存所有这些?

标签: pythontensorflowobject-detectiontensorboardevaluation

解决方案


推荐阅读