我已将flower retraining code修改为label_count = 2,如下所示:
gcloud beta ml jobs submit training "$JOB_ID" \
--module-name trainer.task \
--package-path trainer \
--staging-bucket "$BUCKET" \
--region us-central1 \
-- \
--output_path "${GCS_PATH}/training" \
--eval_data_paths "${GCS_PATH}/preproc/eval*" \
--train_data_paths "${GCS_PATH}/preproc/train*" \
--label_count 2 \
--max_steps 4000
我修改了dict.txt只有两个标签。
但重新训练的模型按预期输出三个分数而不是两个分数。意外的第三个得分总是非常小,如下例所示:
关键预测评分
Key123 0 [0.7956143617630005,0.2043769806623459,8.625334885437042e-06]
为什么有三个分数,是否可以进行更改,因此模型仅输出两个分数?
注意:我已经阅读了Slaven Bilac和JoshGC对问题“cloudml retraining inception - received a label value outside the valid range”的回答,但这些答案并未解决我上面的问题。
答案 0 :(得分:0)
它是"标签"我们适用于训练集中没有标签的图像。此行为将在model.py第221行的评论中讨论
# Some images may have no labels. For those, we assume a default
# label. So the number of labels is label_count+1 for the default
# label.
我同意这不是一个非常直观的行为,但它使代码对于没有清理过的数据集更加强大!希望这可以帮助。