提取 MatConvnet 模型权重

Extracting MatConvnet model weights

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

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

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

非常感谢您的帮助。

有一个转换脚本可以将 matconvnet 模型转换为 caffe 模型here,您可能会发现它很有用。

您要存储其参数的图层必须设置为'precious'。在net.var中你可以访问参数并写入它们。

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