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