我在 Windows 中用 caffe 编译了 matcaffe。
我当前的 matcaffe 文件夹结构如下:
.
C:\PYTHON\caffe
|-- matlab
|
|-- +caffe
|
|--private
|
|-- caffe_.mexw64
|...
|-- all hard linked dlls
我caffe_.mexw64
使用dependency walker检查了以下文件是否丢失:
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
这从依赖步行者中很明显。所有caffe-related dll
s 都找到了。
在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()
,那么它运行成功。
此后,我可以matcaffe
从任何其他文件夹运行命令而不会出现 MEX 错误(因为 dll 已经加载到内存中)。
我的问题是:
- 这里发生了什么我不能直接从任何其他文件夹运行?
- 如何解决这个问题以获得正常行为?
更新:
现在我看到这里已经发布了同样的问题,但没有适当的解决方案。