exponenta event banner

Создание общего кода C/C + + для сетей глубокого обучения

С помощью 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

  1. Запишите в MATLAB функцию точки входа, которая:

    Например:

    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); 

  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;
  3. Запустить codegen команда. Используйте -config для указания объекта конфигурации. Используйте -args для указания типа ввода.

    codegen -config cfg my_predict -args {myInput} -report

    Примечание

    Для создания кода можно задать входные данные с полуконкретностью. Однако тип генератора кода приводит входные данные к одинарной точности. Инструментарий глубокого обучения использует арифметику с одинарной точностью и плавающей запятой для всех вычислений в MATLAB.

Создание кода с помощью приложения кодера MATLAB

  1. Выполните обычные шаги для указания функции точки входа и типов ввода. См. раздел Создание кода C с помощью приложения кодера MATLAB.

  2. На шаге Создать код:

    • Установите язык на C или C++.

    • Щелкните Дополнительные параметры. В области «Глубокое обучение» задайте для параметра «Целевая библиотека» значение None.

  3. Создать код.

См. также

| |

Связанные темы