С MATLAB® Coder™ можно сгенерировать типовой код C or C++ для предсказания из уже обученной сверточной нейронной сети (CNN). Сгенерированный код C/C + + не зависит ни от каких сторонних библиотек. Сгенерированный код реализует CNN с архитектурой, слоями и параметрами, заданными в вход SeriesNetwork
(Deep Learning Toolbox) или DAGNetwork
(Deep Learning Toolbox) сетевой объект. Смотрите Поддерживаемые сети и слои для генерации кода.
Сгенерируйте код с помощью одного из следующих методов:
Стандарт codegen
команда для генерации кода C/C + + из кода MATLAB.
Приложение MATLAB Coder.
В Windows®, генерация кода для нейронных сетей для глубокого обучения с codegen
функция требует Microsoft® Визуальная студия® или MinGW® компилятор.
Интерфейс MATLAB Coder для библиотек глубокого обучения. Чтобы установить этот пакет поддержки, выберите его в меню Add-Ons MATLAB.
Deep Learning 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 или для статической или динамически связанной библиотеки. По умолчанию генератор кода производит типовой код С Чтобы создать универсальный код С++, в объекте строения генерации кода установите 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
Примечание
Можно задать входы половинной точности для генерации кода. Однако тип генератора кода приводит входы к одинарной точности. Deep Learning Toolbox использует арифметику с одной точностью и плавающей точкой для всех расчетов в MATLAB.
Следуйте обычным шагам для определения функции точки входа и определения входных типов. См. «Генерация кода С при помощи приложения MATLAB Coder».
На Generate Code шаге:
Установите Language значение C или C++.
Нажмите More Settings. На панели Deep Learning задайте Target library None
.
Сгенерируйте код.
codegen
| coder.DeepLearningConfig
| coder.loadDeepLearningNetwork