我在使用matlab构建opencl caffe时遇到此问题。无法将参数1从'char *'转换为'const caffe :: NetParameter
“d:\项目\肖卡特\ CAFFE-的OpenCL \ CAFFE-的OpenCL \构建\ ALL_BUILD.vcxproj”(缺省目标)(1) - > “d:\项目\肖卡特\ CAFFE-的OpenCL \ (默认目标)(25) - > (ClCompile target) - > D:\ Projects \ shawkat \ caffe-opencl \ caffe-opencl \ matlab + caffe \ private \ caffe-opencl \ build \ Matlab \ matlab.vcxproj caffe_.cpp(285):error C2664:'caffe :: Net: :Net(const caffe :: Net &)':无法将参数1从'char *'转换为'const caffe :: NetParameter &'[D: \ Projects \ shawkat \ caffe-opencl \ caffe-opencl \ build \ Matlab \ matlab.vcxproj
的问题是功能get_net文件caffe_.cpp
这里从文件
// Usage: caffe_('get_net', model_file, phase_name)
static void get_net(MEX_ARGS) {
mxCHECK(nrhs == 2 && mxIsChar(prhs[0]) && mxIsChar(prhs[1]),
"Usage: caffe_('get_net', model_file, phase_name)");
char* model_file = mxArrayToString(prhs[0]);
char* phase_name = mxArrayToString(prhs[1]);
mxCHECK_FILE_EXIST(model_file);
Phase phase;
if (strcmp(phase_name, "train") == 0) {
phase = TRAIN;
} else if (strcmp(phase_name, "test") == 0) {
phase = TEST;
} else {
mxERROR("Unknown phase");
}
shared_ptr<Net<float> > net(new caffe::Net<float>(model_file, phase));
nets_.push_back(net);
plhs[0] = ptr_to_handle<Net<float> >(net.get());
mxFree(model_file);
mxFree(phase_name);
}
它似乎是你传递一个字符串(文件名),而实际上你的函数需要一个解析的文件对象。 – Shai
好的感谢您的快速评论 现在model_file和phase_name是字符串 ,它们显示此行中的错误 shared_ptr> net(new caffe :: Net (model_file,phase)); 正如我前面所述 我应该在这一行或在这些变量的最初做什么? –
我也尝试与忍者一起打造,并且我得到了相同的错误 –