С 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® Visual Studio® или компилятора MinGW®.
Интерфейс MATLAB Coder для Библиотек Глубокого обучения. Чтобы установить этот пакет поддержки, выберите его из меню MATLAB Add-Ons.
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