С помощью MATLAB ® Coder™ можно генерировать общий код C или C++ для прогнозирования из уже обученной сверточной нейронной сети (CNN). Созданный код C/C + + не зависит от каких-либо сторонних библиотек. Сгенерированный код реализует CNN с архитектурой, уровнями и параметрами, указанными на входеSeriesNetwork (инструментарий глубокого обучения) или DAGNetwork (Deep Learning Toolbox) сетевой объект. См. раздел Сети и уровни, поддерживаемые для создания кода.
Создайте код одним из следующих способов:
Стандарт codegen команда для генерации кода C/C + + из кода MATLAB.
Приложение MATLAB Coder.
В Windows ® создание кода для сетей глубокого обучения с помощью codegen требуется компилятор Microsoft ® Visual Studio ® или MinGW ®.
Интерфейс кодера MATLAB для библиотек глубокого обучения. Чтобы установить этот пакет поддержки, выберите его в меню Add-on MATLAB.
Toolbox™ глубокого обучения.
codegen
Запишите в MATLAB функцию точки входа, которая:
Использует coder.loadDeepLearningNetwork для создания и настройки сетевого объекта CNN. Дополнительные сведения см. в разделе Загрузка предварительно обученных сетей для создания кода.
Вызывает predict (Deep Learning Toolbox) метод сети на входе функции начального уровня.
Задает MiniBatchSize в predict способ управления использованием памяти для прогнозирования на множественных входных изображениях или наблюдениях.
Например:
function out = my_predict(in) %#codegen % A persistent object mynet is used to load the series network object. % At the first call to this function, the persistent object is constructed and % setup. When the function is called subsequent times, the same object is reused % to call predict on inputs, thus avoiding reconstructing and reloading the % network object. persistent mynet; if isempty(mynet) mynet = coder.loadDeepLearningNetwork('myNetwork.mat'); end % pass in input out = predict(mynet,in,'MiniBatchSize',2);
Создание объекта конфигурации глубокого обучения dlconfig который сконфигурирован для генерации общего кода C/C + + с помощью coder.DeepLearningConfig функция.
dlconfig = coder.DeepLearningConfig(TargetLibrary='none');Создайте объект конфигурации создания кода для MEX или для статической или динамически связанной библиотеки. По умолчанию генератор кода создает общий код C. Для создания общего кода C++ в объекте конфигурации создания кода установите TargetLang параметр для 'C++'. Установите DeepLearningConfig параметр для ранее созданного объекта dlconfig.
cfg = coder.config('lib'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = dlconfig;
Запустить codegen команда. Используйте -config для указания объекта конфигурации. Используйте -args для указания типа ввода.
codegen -config cfg my_predict -args {myInput} -report
Примечание
Для создания кода можно задать входные данные с полуконкретностью. Однако тип генератора кода приводит входные данные к одинарной точности. Инструментарий глубокого обучения использует арифметику с одинарной точностью и плавающей запятой для всех вычислений в MATLAB.
Выполните обычные шаги для указания функции точки входа и типов ввода. См. раздел Создание кода C с помощью приложения кодера MATLAB.
На шаге Создать код:
Установите язык на C или C++.
Щелкните Дополнительные параметры. В области «Глубокое обучение» задайте для параметра «Целевая библиотека» значение None.

Создать код.
codegen | coder.DeepLearningConfig | coder.loadDeepLearningNetwork