В настоящее время я разрабатываю приложение для распознавания лиц.
Алгоритмы реализованы и обучены с использованием библиотеки MatConvnet (http://www.vlfeat.org/matconvnet/). В конце у меня есть сеть (.mat файл), которая выглядит так:
Я хотел бы знать, было ли возможно извлечь веса Сети, используя ее файл .mat, записать их в файл XML и прочитать их с помощью Caffe C ++. Я хотел бы повторно использовать их в Caffe C ++ для того, чтобы провести тестирование и реализовать аппаратное обеспечение. Есть ли эффективный и практичный способ сделать это?
Большое спасибо за вашу помощь.
Существует скрипт преобразования, который преобразует модели matconvnet в модели caffe Вот который вы можете найти полезным.
Слой, параметры которого вы хотите сохранить, должен быть установлен как «драгоценный». В net.var вы можете получить доступ к параметрам и записать их.
Вы не можете использовать веса обученной Сети с помощью matconvnet для кафе. Вы можете просто импортировать свою модель из matconvnet в caffe. (https://github.com/vlfeat/matconvnet/blob/4ce2871ec55f0d7deed1683eb5bd77a8a19a50cd/utils/import-caffe.py). Но этот скрипт не поддерживает все слои, и у вас могут возникнуть трудности с его использованием.
Лучший способ — определить прототип вашего caffe в python как модель matconvnet.