Caffe: проверка не пройдена: external_num_ * inner_num_ == bottom [1] -> count () (10 против 60) Количество меток должно совпадать с количеством прогнозов - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь настроить Alexnet для задачи регрессии с несколькими метками.Для этого я заменил последний слой, производящий вывод с 1000 метками (для задачи классификации изображений) на вывод с 6 метками, что дает мне 6 поплавков.Я заменил последние слои , как указано здесь .

Мои тренировочные данные подготовлены в формате h5 и имеют форму (11000, 3, 544, 1024) для data и (11000, 1, 6) для labels.При переподготовке весов Alexnet в библиотеке Caffe я получаю следующую ошибку:

I1013 10:50:49.759560  3107 net.cpp:139] Memory required for data: 950676640

I1013 10:50:49.759562  3107 layer_factory.hpp:77] Creating layer accuracy_retrain

I1013 10:50:49.759567  3107 net.cpp:86] Creating Layer accuracy_retrain

I1013 10:50:49.759568  3107 net.cpp:408] accuracy_retrain <- fc8_fc8_retrain_0_split_0

I1013 10:50:49.759572  3107 net.cpp:408] accuracy_retrain <- label_data_1_split_0

I1013 10:50:49.759575  3107 net.cpp:382] accuracy_retrain -> accuracy

F1013 10:50:49.759587  3107 accuracy_layer.cpp:31] Check failed: outer_num_ * inner_num_ == bottom[1]->count() (10 vs. 60) Number of labels must match number of predictions; e.g., if label axis == 1 and prediction shape is (N, C, H, W), label count (number of labels) must be N*H*W, with integer values in {0, 1, ..., C-1}.

Мой размер пакета для фаз обучения и тестирования равен 10.Ошибка возникает на этапе тестирования, возможно, на уровне accuracy Полный журнал ошибок здесь .Я не уверен, почему эта проблема возникает, возможно, мой label имеет неправильную форму.Любая помощь в этом отношении будет высоко оценена.

1 Ответ

0 голосов
/ 13 октября 2018

Я решил эту проблему.Похоже, слой accuracy используется только для задач классификации вместе со слоем SoftmaxWithLoss.Как указано в в этом ответе , EuclideanLoss может использоваться для проверки регрессионной сети.

...