Начало переподготовки и указание label_count = 2, но получение трех баллов вместо двух

Я изменил код цветочной переподготовки, чтобы иметь 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

И я изменил дикт.txt должен иметь только две метки.

Но переобученная модель выдает три балла вместо двух, как ожидалось. Неожиданный третий балл всегда очень мал, как показано в этом примере:

КЛЮЧЕВЫЕ ОЦЕНКИ ПРОГНОЗА

Key123 0 [0.7956143617630005, 0.2043769806623459, 8.625334885437042 e-06]

Почему есть три балла и есть ли изменение, которое можно сделать, чтобы модель выводила только два балла?

Примечание: Я прочитал ответы Славена Билаца и JoshGC на вопрос “ cloudml reading inception — получил значение метки вне допустимого диапазона”, но эти ответы не затрагивают мой вопрос выше.

1 ответ

  1. Это «метка», которую мы применяем к изображениям, у которых не было метки в обучающем наборе. Поведение обсуждается в этом комментарии в 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.
    

    Я согласен, что это не очень интуитивное поведение, но это делает код немного более надежным по отношению к наборам данных, которые не так очищены! Надеюсь, это поможет.