0

我已将花再训练代码修改为 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 对问题“<a href="https://stackoverflow.com/questions/41601620/cloudml-retraining-inception-received-a-label-value-outside-the -valid-range">cloudml retraining inception - 收到一个超出有效范围的标签值”但这些答案并没有解决我上面的问题。

4

1 回答 1

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.

我同意这不是一个非常直观的行为,但它使代码对未清理的数据集更加健壮!希望这可以帮助。

于 2017-01-17T15:59:02.727 回答