我最近建立了来自this tutorial的数字,一切正常,我终于训练了我的AlexNet模型(还训练了一个SqueezNet,以便我可以在这里上传模型)!问题是当我从Digits下载我的模型时,我无法将其加载到我的程序中进行测试!我已经使用GoogleNet下载的from this link测试了我的程序,它运行正常! 我在此函数中使用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)在blo中 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 功能blo bFromProtoOpenCV错误:未找到请求的对象(请求的blob“数据” 没找到)我
中找不到请求的blob“数据”
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)在函数setInput中止(核心倾销)
任何帮助将不胜感激<3
opencv版本3.3.1也测试了(3.3.0,3.4.1)同样的错误! 在没有Cuda,Cudnn或Caffe的系统上进行测试,只需要纯c ++和OpenCv ...... 但是我用Cuda,Cudnn和caffe训练我的模型在aws ec2实例(p3.2xlarge)上!
you can download the trained squeezNet model (.prototxt and .caffemodel) here
答案 0 :(得分:0)
答案 1 :(得分:0)
OpenCV DNN模型期望采用BVLC格式的caffemodel。但是,NVCaffe以更有效的格式存储caffe模型,这种格式与BVLC Caffe不同。 如果您想要与BVLC / Caffe以及NVcaffe兼容的型号。
在solver.prototxt中添加此标志 store_blobs_in_old_format = true
请阅读DIGITS NVCaffe文档。 NVCaffe Documenation - store_blobs_in_old_format