Я обучил свою собственную сеть. Тренировка была в порядке. Я также использовал ‘caffe time’, и он обычно оценивает время для прямого и обратного прохода. Однако, когда я запускаю это: (Используя эту ссылку)
./build/examples/cpp_classification/classification.bin models/own_net/deploy.prototxt examples/RSR_50k_all_1k_db/snapshot_iter_10000.caffemodel examples/RSR_50k_all_1k_db/mean.binaryproto examples/RSR_50k_all_1k_db/labels.txt /home/ubuntu/datasets/RSR_50k_1ll_1k/Testing/[0]/outfile243.jpg
Это приводит к ошибке:
F0426 10:10:50.063822 2714 classification.cpp:63] Check failed: net_->num_outputs() == 1 (2 vs. 1) Network should have exactly one output.
*** Check failure stack trace: ***
@ 0xf6c5d060 (unknown)
@ 0xf6c5cf5c (unknown)
@ 0xf6c5cb78 (unknown)
@ 0xf6c5ef98 (unknown)
@ 0xd10c Classifier::Classifier()
@ 0xb0a2 main
@ 0xf672c632 (unknown)
Aborted
Когда я использую ту же команду для классификации изображения стандартного кота с помощью caffenet, она работает просто отлично. Я подозреваю, что есть проблема с файлом метки. В моем файле меток перечислены только все метки, по одной в каждой строке. Есть идеи, что я делаю не так?
к сожалению, сеть не моя, поэтому я не думаю, что мне разрешено делиться всей структурой. Тем не менее, он имеет несколько слоев conv, relu и fc и заканчивается этим слоем:
layer {
name: "prob"type: "Softmax"bottom: "ip3"top: "prob"}
который я подозреваю, может быть виновником.
Задача ещё не решена.
Других решений пока нет …