activations

Класс: dlhdl. Рабочий процесс
Пакет: dlhdl

Получение промежуточных результатов слоя для развернутых нейронных сетей для глубокого обучения

Описание

пример

activations(image,layername) возвращает результаты данных активации промежуточного слоя для данных изображения в imIn, и имя слоя, заданное в layername. Размер результата зависит от выходного размера слоя. Размер выходного слоя может быть получен при помощи analyzeNetwork.

activations(image,layername, Name,Value)возвращает результаты данных активации промежуточного слоя для данных изображения в imIn, и имя слоя, заданное в layername, с дополнительными опциями, заданными одним или несколькими Name,Value аргументы в виде пар. Размер результата зависит от выходного размера слоя. Размер выходного слоя может быть получен при помощи analyzeNetwork.

Входные параметры

расширить все

Входное изображение, заданное как m -by- n -by-3 числовой массив. m и n должны совпадать с размерностями входа изображения нейронной сети для глубокого обучения. Для примера в сети LogoNet измените размер входа изображений на массив 227 227 3.

Типы данных: single

Имя слоя в развёрнутой нейронной сети для глубокого обучения, результаты которого извлекаются для изображения, указанного в imIn.

Слой должен иметь тип Convolution, Fully Connected, Max Pooling, ReLU, или Dropout. Convolution и Fully Connected слои разрешены, пока они не сопровождаются ReLU слой.

Пример: 'maxpool _ 3'

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Флаг для возврата результатов профилирования для нейронной сети для глубокого обучения, развернутой на целевой плате.

Пример: 'Profiler','on'

Примеры

расширить все

  1. Создайте файл в текущей рабочей папке с именем getLogoNetwork.m. Введите эти линии в файл:

    function net = getLogoNetwork
        data = getLogoData;
        net  = data.convnet;
    end
    
    function data = getLogoData()
        if ~isfile('LogoNet.mat')
            url = 'https://www.mathworks.com/supportfiles/gpucoder/cnn_models/logo_detection/LogoNet.mat';
            websave('LogoNet.mat',url);
        end
        data = load('LogoNet.mat');
    end
  2. Создайте dlhdl.Workflow объект, который имеет LogoNet в качестве сетевого аргумента, zcu102_single как аргумент в виде битового потока, и hT в качестве целевого аргумента.

    snet = getLogoNetwork;
    hT = dlhdl.Target('Xilinx');
    hW = dlhdl.Workflow('Network',snet,'Bitstream','zcu102_single','target',hT);
  3. Извлечение рандомизированного изображения из logos_dataset набор данных.

    curDir = pwd;
    newDir = fullfile(matlabroot,'examples','deeplearning_shared','data','logos_dataset.zip');
    copyfile(newDir,curDir);
    unzip('logos_dataset.zip');
    imds = imageDatastore('logos_dataset', ...
        'IncludeSubfolders',true, ...
        'LabelSource','foldernames');
    [imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,'randomized');
    index = randperm(numel(imdsValidation.Files),1)
    imIn = readimage(imdsValidation,index)
    inputImg = imresize(imIn, [227 227]);
    

  4. Извлечение результатов слоя для maxpool_3 слой при помощи activations функция.

    imIn = single(inputImg);
    results = hW.activations(imIn,'maxpool_3','Profiler','on');

    Результат выполнения кода - матрица 25 на 25 на 384 для results.

                  Deep Learning Processor Profiler Performance Results
    
                       LastLayerLatency(cycles)   LastLayerLatency(seconds)       FramesNum      Total Latency     Frames/s
                             -------------             -------------              ---------        ---------       ---------
    Network                   32497812                  0.14772                       1           32497822              6.8
        conv_module           32497812                  0.14772 
            conv_1             6953894                  0.03161 
            maxpool_1          3305128                  0.01502 
            conv_2            10397281                  0.04726 
            maxpool_2          1207938                  0.00549 
            conv_3             9267269                  0.04212 
            maxpool_3          1366383                  0.00621 
     * The clock frequency of the DL processor is: 220MHz

См. также

| | |

Введенный в R2020b