【问题标题】:cannot convert argument 1 from 'char *' to 'const caffe::NetParameter无法将参数 1 从 'char *' 转换为 'const caffe::NetParameter
【发布时间】:2017-07-23 04:05:57
【问题描述】:

我在用 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

问题出在文件 caffe_.cpp 中的函数 get_net 中 这是文件中的这个函数

// 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);
}

【问题讨论】:

  • 看起来你正在传递一个字符串(文件名),而实际上你的函数需要一个解析的文件对象。
  • 好的,感谢您的快速评论,现在 model_file 和 phase_name 是字符串,它们在这一行显示错误 shared_ptr > net(new caffe::Net(model_file, phase)) ;正如我之前所说,我应该在这一行或这些变量的开头做什么?
  • 我也尝试用 ninja 构建,但我得到了同样的错误
  • @HeshamMohamed 你能提供一个已经构建好的matcaffe吗?
  • 在这里,但很有可能它对你不起作用,因为你必须从一开始就在你的平台上构建它才能真正工作drive.google.com/open?id=0Byz3GHMzuz2xTzktRGhXb25UVHM

标签: c++ matlab caffe mex matcaffe


【解决方案1】:

通过添加 NULL 作为函数的第三个输入来解决,如下所示 shared_ptr > net(new caffe::Net(model_file, phase , NULL));

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多