我在Windows中用caffe编译了matcaffe。
我目前的matcaffe文件夹结构如下:
.
C:\PYTHON\caffe
|-- matlab
|
|-- +caffe
|
|--private
|
|-- caffe_.mexw64
|...
|-- all hard linked dlls
我已使用依赖性walker检查了caffe_.mexw64
,但缺少以下文件:
LIBMEX.DLL
LIBMX.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
DCOMP.DLL
IESHIMS.DLL
从依赖性walker中非常明显。找到所有caffe-related dll
。
在matlab中,我添加了以下路径:
addpath('C:\PYTHON\caffe\matlab');
但是在运行此命令时:
caffe.run_tests()
我收到以下错误:
Invalid MEX-file 'C:\PYTHON\caffe\matlab\+caffe\private\caffe_.mexw64': The
specified procedure could not be found.
Error in caffe.set_mode_cpu (line 5)
caffe_('set_mode_cpu');
Error in caffe.run_tests (line 6)
caffe.set_mode_cpu();
有趣的是以下内容。如果我转到caffe\matlab\+caffe\private
文件夹并运行相同的caffe.run_tests()
,那么它会成功运行。
此后,我可以在没有来自任何其他文件夹的MEX错误的情况下运行matcaffe
命令(因为dll已经加载到内存中)。
我的问题是:
现在我发现同样的问题已发布here,但没有适当的解决方案。
答案 0 :(得分:0)
您需要将包含DLL的目录添加到PATH
环境变量中。您可以在Windows上的MATLAB中执行此操作(这不能修改Linux和Unix上的等效LD_LIBRARY_PATH
):
setenv('PATH',['C:\PYTHON\caffe\matlab\+caffe\private\;',getenv('PATH')]);