Значение аннотации 21 найдено в ярлыках.Это больше, чем количество классов - PullRequest
0 голосов
/ 27 января 2019

из предмета это кажется довольно очевидной проблемой, верно?

Но, клянусь, у меня 21 ярлык и 21 класс.

Так что, как проверка здравомыслия, я подумал, что спрошу!

  1. У меня куча тренировочных образов (640,640)
  2. Я прошел их и использовал DataTurks для аннотирования данных.
  3. Исходя из этого, я создал набор масок PNG, в которых я использовал 255 для пробела, а затем tan Int для соответствующего числа, чтобы создать массив NP для преобразования в png.
  4. Затем я следовал этому примеру sagemaker для сегментации , который, кажется, работает до тех пор, пока я не запущу ss_model.fit.

Здесь я начинаю получать сообщения об ошибках. Полный журнал можно увидеть в этом Гисте

Первая ошибка , которую выскочил на меня:

label maps not provided, using defaults.

Что странно, так как я считаю, что я правильно загрузил их в S3 <bucket>/label_map/train_label_map.json

Эта карта меток выглядит следующим образом: Gist (Возможно, она терпит неудачу, так как это недопустимый JSON, однако я копировал, как ее использует другой пример sagemaker?)

Вторая ошибка , которую нужно выпрыгнуть, - та, которая в названии.

Возможно, мои маски совершенно неверны (я все еще плохо знаком с ML), но они выглядят так, но 640x640:

[ 
   255, 255, 255
   255, 2, 2,
   255, 2, 2
]

Где 255 - ноль, а 2 - аннотация.

Может ли эта ошибка быть из-за того, что я не включаю 255: "null" в label_map?

Любое понимание было бы очень полезно! Спасибо.

1 Ответ

0 голосов
/ 04 февраля 2019

- Но, клянусь, у меня 21 ярлык и 21 класс.

Если у вас 21 класс, максимальная метка должна быть 20, а не 21, поэтому выдается ошибка.Индексы меток начинаются с 0. Примечания к этому можно найти на странице документации .

Из вашего комментария к вашему сообщению кажется, что у вас есть 23 класса, если вам нужно установить количество классов на 22. num_classes только для классов и не включает класс 255 или дыру.Обратите внимание, что алгоритм будет работать без ошибок, если вы введете num_classes> количество меток.Это связано с тем, что параметр num_classes используется для создания слоя softmax.Если у вас на num_classes больше, чем фактическое количество увиденных ярлыков, некоторые ярлыки просто не изучаются.

Если погрузиться немного глубже, карта меток в ссылке , которой вы поделились ,неправильно.Карты с метками принимают только целые числа, а не строки.Это отображение int-int.Вследствие этого недостаточно просто иметь label_map в корзине S3, его необходимо предоставить в качестве канала данных в алгоритм при создании учебного задания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...