Я построил цифры из этот урок В последнее время все в порядке, и я наконец обучил свою модель AlexNet (также обучил SqueezNet, чтобы я мог загрузить модель здесь)! проблема заключается в том, что когда я загружаю свою модель из цифр, я не могу загрузить ее в свою программу для тестирования! по этой ссылке и работает нормально!
Я использую OpenCV readNetFromCaffe в этой функции для загрузки модели Caffe
void deepNetwork::loadModel( cv::String model ,cv::String weight ,string lablesPath,int ps){
patchSize=ps;
labeslPath=lablesPath;
try
{
net = dnn::readNetFromCaffe(weight,model);
cerr<<"loaded succ"<<endl;
}
catch (cv::Exception& e)
{
std::cerr << "Exception: " << e.what() << std::endl;
}}
Я получаю следующую ошибку при загрузке моей модели
Ошибка OpenCV: утверждение не выполнено (pbBlob.raw_data_type () ==
caffe :: FLOAT16) в цвету
bFromProto, файл
/ Главная / NVIDIA / строить-OpenCV / OpenCV / модули / DNN / SRC / кофейная / caffe_im
porter.cpp, строка 242 Исключение:
/ Главная / NVIDIA / строить-OpenCV / OpenCV / модули / DNN / SRC / кофейная / caffe_importer
.cpp: 242: ошибка: (-215) pbBlob.raw_data_type () == caffe :: FLOAT16 in
функция бло
bFromProtoОшибка OpenCV: запрошенный объект не найден (не найден запрошенный объект «данные») i
n setInput, file
/home/nvidia/build-opencv/opencv/modules/dnn/src/dnn.cpp, line
1606 прекращение вызова после выброса экземпляра ‘cv :: Exception’
какие():
/home/nvidia/build-opencv/opencv/modules/dnn/src/dnn.cpp:1606: ошибка:
(-204) Запрошенный BLOB-объект «данные» не найден в функции setInputПрервано (ядро сброшено)
любая помощь будет оценена <3
opencv версии 3.3.1 также тестировался на (3.3.0, 3.4.1) ту же ошибку!
тестирование на системе без Cuda, Cudnn или Caffe, просто чистый C ++ и OpenCv …
но я натренировал свою модель на экземпляре aws ec2 (p3.2xlarge) с Cuda, Cudnn и caffe!
Вы можете скачать обученную модель squeezNet (.prototxt и .caffemodel) здесь
наконец то я нашел проблему!
это проблема версии, у меня есть цифры 6.1.1, работающие с nvcaffe 0.17.0 для обучения, которое не совместимо с предыдущими библиотеками Caffe и OpenCv! Вы должны понизить NvCaffe до версии 0.15.14, и он легко откроется с OpenCv!
Модель OpenCV DNN рассчитана на модель в формате BVLC. Но NVCaffe хранит модель кафе в более эффективном формате, который отличается от BVLC Caffe.
Если вам нужна модель, совместимая как с BVLC / Caffe, так и с NVcaffe.
Добавьте этот флаг в solver.prototxt
store_blobs_in_old_format = true
Пожалуйста, прочитайте документацию DIGITS NVCaffe.
Документация NVCaffe — store_blobs_in_old_format