我在用 matlab 构建 opencl caffe 时遇到了这个问题。
"D:\Projects\shawkat\caffe-opencl\caffe-opencl\build\ALL_BUILD.vcxproj" (默认目标) (1) -> "D:\Projects\shawkat\caffe-opencl\caffe-opencl\build\Matlab \matlab.vcxproj" (默认目标) (25) -> (ClCompile 目标) -> D:\Projects\shawkat\caffe-opencl\caffe-opencl\matlab+caffe\private\caffe_.cpp(285): 错误 C2664 : 'caffe::Net: :Net(const caffe::Net &)': 无法将参数 1 从 'char *' 转换为 'const caffe::NetParameter &' [D:\Projects \shawkat\caffe-opencl\caffe -opencl\build\Matlab\matlab.vcxproj
问题出在文件中的函数 get_netcaffe_.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);
}