2017-07-20 122 views
1

我在使用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); 
} 
+0

它似乎是你傳遞一個字符串(文件名),而實際上你的函數需要一個解析的文件對象。 – Shai

+0

好的感謝您的快速評論 現在model_file和phase_name是字符串 ,它們顯示此行中的錯誤 shared_ptr > net(new caffe :: Net (model_file,phase)); 正如我前面所述 我應該在這一行或在這些變量的最初做什麼? –

+0

我也嘗試與忍者一起打造,並且我得到了相同的錯誤 –

回答

1

加入NULL作爲第三輸入功能,解決如下 的shared_ptr>網(新朱古力::淨此功能(model_file,phase,NULL));

相關問題