2016-11-02 5 views
0

Я пытаюсь использовать тонкую сеть deepLab, используемую для семантической сегментации, на моих собственных данных, которая имеет пиксельные метки для 2-х классов: «руки» и фон. Мои наземные карты сегментации истинности - это двоичные карты с 1 для рук и 0 для фона.неожиданный labal '38' deepLab error

Я изменил сеть deeplab-largeFOV, чтобы иметь 2 метки вывода вместо 21 (21 при обучении на PASCAL VOC) и попытался запустить ее. Это как-то меняет мои метки от 1 до 38, а затем бросает следующее сообщение об ошибке:

F1101 20:47:22.904304 21648 seg_accuracy_layer.cpp:92] Unexpected label 38. num: 0. row: 3. col: 15 

Я попытался значение печати, необходимым для заземления истины из слоя «интерполяция», и кажется, что по какой-то причине моих метки для рук преобразовываются до 38. Может кто-нибудь объяснить мне, почему это происходит?

Я застрял на нем, так как больше недели, и это действительно frsutrating сейчас. Любая помощь будет высоко оценена.

Спасибо!

+0

Вы получили его? –

+1

Нет, seg_accuracy_layer.cpp все равно бросает ту же ошибку. Я изменил уровень точности с «SegAccuracy» на «Accuracy», а затем все работает отлично для меня. – AUKhan

+0

@AUKhan вы спасли мой день! –

ответ

0

Измените уровень точности с «SegAccuracy» на «Accuracy», после чего эта ошибка исчезнет.

+0

Примечание: это должно работать только для случая 2 класса. – zanbri

+0

Я думаю, что он должен работать и на более чем 2 класса, так как мы заменяем слой «SegAccuracy» стандартным слоем «Точность», и это исправление не зависит от количества классов. – AUKhan