测试环境:
caffe-windows-cpu-py35-matlab2018b-vs2015-20220321
matlab2023a
注意:由于matlab新版本不允许添加特殊目录,比如有+和private目录,添加后也会警告,但是可以忽略。因此可以使用我研发的matlab环境添加工具进行添加操作或者手动编辑D:\Program Files\MATLAB\R2023a\toolbox\local\pathdef.m文件。
步骤:
将bin文件夹加入用户环境变量或者系统环境变量path
C:\Users\Administrator\Desktop\caffe-windows\build\install\bin
使用添加环境变量工具添加caffe目录:
添加目录是C:\Users\Administrator\Desktop\caffe-windows\build\install\matlab\+caffe
注意添加完要重启matlab,我们打开matlab选择C:\Users\Administrator\Desktop\caffe-windows\matlab\demo目录
将synset_words.txt
放入C:\Users\Administrator\Desktop\caffe-windows\matlab\demo
将bvlc_reference_caffenet.caffemodel
放入C:\Users\Administrator\Desktop\caffe-windows\models\bvlc_reference_caffenet
将C:\Users\Administrator\Desktop\caffe-windows\build\install\matlab\+caffe\private\Release里面的caffe_.mexw64放到上一级目录中即
C:\Users\Administrator\Desktop\caffe-windows\build\install\matlab\+caffe\private
打开classification_demo.m,修改60行为
addpath('../../build/install/matlab');
此时报错:
错误使用 caffe_
Could not convert handle to pointer due to invalid init_key. The object might have been cleared.
出错 caffe.Net/delete (第 73 行)
caffe_('delete_net', self.hNet_self);
出错 classification_demo (第 114 行)
caffe.reset_all();
> 位置:classification_demo (第 114 行)
解决方法为修改2处Net.m代码,安装目录有个+caffe目录
C:\Users\Administrator\Desktop\caffe-windows\build\install\matlab\+caffe
C:\Users\Administrator\Desktop\caffe-windows\matlab\+caffe
需要修改:caffe-windows\matlab\+caffe\Net.m,第72行:
将:
function delete (self)
if ~isempty(self.hNet_self)
caffe_('delete_net', self.hNet_self);
end
end
改成
function delete (self)
if self.isvalid
caffe_('delete_net', self.hNet_self);
end
end
再次运行即可成功。