Сгенерируйте Типовой Код C/C++ для Нейронных сетей для глубокого обучения

С 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

  1. Напишите функцию точки входа в 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); 

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

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

    Примечание

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

Генерация кода при помощи приложения MATLAB Coder

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

  2. На шаге Generate Code:

    • Установите Language или на C или на C++.

    • Нажмите More Settings. В панели Deep Learning, набор Target library к None.

  3. Сгенерируйте код.

Смотрите также

| |

Похожие темы