提取MatConvnet模型权重

时间:2016-12-13 01:38:39

标签: c++ opencv machine-learning caffe matconvnet

我目前正在开发面部识别应用程序。

使用MatConvnet库(http://www.vlfeat.org/matconvnet/)实现和训练算法。最后,我有一个网络(.mat文件),看起来像这样: enter image description here

enter image description here

我想知道是否可以使用.mat文件提取网络的权重,将它们写入XML文件并使用Caffe C ++读取它们。我想在Caffe C ++中重用它们,以便进行一些测试和硬件实现。是否有一种有效而实用的方法可以这样做?

非常感谢你的帮助。

3 个答案:

答案 0 :(得分:2)

您要存储其参数的图层必须设置为“珍贵”。在net.var中,您可以访问参数并编写它们。

答案 1 :(得分:1)

有一个转换脚本可以将matconvnet模型转换为您可能觉得有用的caffe模型here

答案 2 :(得分:0)

您不能通过matconvnet对受过训练的网络的权重使用caffe。您只能将模型从matconvnet导入到caffe。(https://github.com/vlfeat/matconvnet/blob/4ce2871ec55f0d7deed1683eb5bd77a8a19a50cd/utils/import-caffe.py)。但是这个脚本不支持所有层,你可能在使用它时遇到困难。 最好的方法是在python中将caffe prototxt定义为matconvnet模型。