我目前正在开发面部识别应用程序。
使用MatConvnet库(http://www.vlfeat.org/matconvnet/)实现和训练算法。最后,我有一个网络(.mat文件),看起来像:
我想知道是否可以使用.mat文件提取网络的权重,将它们写入XML文件并使用Caffe C ++读取它们。我想在Caffe C ++中重用它们,以便进行一些测试和硬件实现。这样做是否有一种有效而实用的方法?
非常感谢你的帮助。
有一个转换脚本可以将matconvnet模型转换为caffe模型here,您可能会发现它很有用。
您要存储其参数的图层必须设置为“珍贵”。在net.var中,您可以访问参数并编写它们。
您不能通过matconvnet使用经过训练的网络的权重来获取caffe。您只需将模型从matconvnet导入到caffe。(https://github.com/vlfeat/matconvnet/blob/4ce2871ec55f0d7deed1683eb5bd77a8a19a50cd/utils/import-caffe.py)。但是这个脚本不支持所有层,你可能在使用它时遇到困难。最好的方法是在python中将caffe prototxt定义为matconvnet模型。