estimate

Класс: dlhdl.Workflow
Пакет: dlhdl

Оцените эффективность заданной нейронной сети для глубокого обучения и потока битов для платы целевого устройства

Синтаксис

Описание

пример

estimate(estimateparameter) оценки и предсказывают эффективность нейронной сети для глубокого обучения, которую вы задали как часть dlhdl.Workflow класс для развертывания на заданных платах целевого устройства.

Примеры

развернуть все

Определите среднее количество циклов, выполняемых на входное изображение.

Создайте объект в качестве примера при помощи dlhdl.Workflow и затем используйте estimate функционируйте, чтобы оценить Performance.

snet = vgg19;
hW = dlhdl.Workflow('network', snet, 'Bitstream', 'zcu102_single');
hW.estimate('Performance')

Если код выполнен, результат

              Deep Learning Processor Estimator Performance Results

                   LastLayerLatency(cycles)   LastLayerLatency(seconds)       FramesNum      Total Latency     Frames/s
                         -------------             -------------              ---------        ---------       ---------
Network                  204460802                  0.92937                       1          204460802              1.1
    conv_module          158812469                  0.72187 
        conv1_1            2022004                  0.00919 
        conv1_2           15855549                  0.07207 
        pool1              2334753                  0.01061 
        conv2_1            7536365                  0.03426 
        conv2_2           14837392                  0.06744 
        pool2              1446960                  0.00658 
        conv3_1            7950445                  0.03614 
        conv3_2           14365933                  0.06530 
        conv3_3           14365933                  0.06530 
        conv3_4           14365933                  0.06530 
        pool3               930145                  0.00423 
        conv4_1            7073684                  0.03215 
        conv4_2           13761300                  0.06255 
        conv4_3           13761300                  0.06255 
        conv4_4           13761300                  0.06255 
        pool4               572644                  0.00260 
        conv5_1            3432645                  0.01560 
        conv5_2            3432645                  0.01560 
        conv5_3            3432645                  0.01560 
        conv5_4            3432645                  0.01560 
        pool5               140249                  0.00064 
    fc_module             45648333                  0.20749 
        fc6               37940907                  0.17246 
        fc7                6194731                  0.02816 
        fc8                1512695                  0.00688 
 * The clock frequency of the DL processor is: 220MHz 
    

Определите среднее количество циклов, выполняемых на входное изображение.

Создайте объект в качестве примера при помощи dlhdl.Workflow и затем используйте estimate функционируйте, чтобы оценить Performance.

Создайте файл в своей текущей рабочей директории под названием 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

Используйте это изображение, чтобы запустить код:

Чтобы квантовать сеть, вам нужны продукты, перечисленные под FPGA в необходимых условиях рабочего процесса квантования.

snet = getLogoNetwork();
dlquantObj = dlquantizer(snet,'ExecutionEnvironment','FPGA');
Image = imageDatastore('heineken.png','Labels','Heineken');
dlquantObj.calibrate(Image);
hW = dlhdl.Workflow('Network',dlquantObj,'Bitstream','zcu102_int8');
hW.estimate('Performance');

Если код выполнен, результат:

             Deep Learning Processor Estimator Performance Results

 

                   LastLayerLatency(cycles)   LastLayerLatency(seconds)       FramesNum      Total Latency     Frames/s
                         -------------             -------------              ---------        ---------       ---------
Network                   13923758                  0.04641                       1           13923758             21.5
    conv_module           12737303                  0.04246 
        conv_1             3327693                  0.01109 
        maxpool_1          1876824                  0.00626 
        conv_2             2936929                  0.00979 
        maxpool_2           723536                  0.00241 
        conv_3             2456212                  0.00819 
        maxpool_3           882032                  0.00294 
        conv_4              520052                  0.00173 
        maxpool_4            14025                  0.00005 
    fc_module              1186455                  0.00395 
        fc_1                708503                  0.00236 
        fc_2                453111                  0.00151 
        fc_3                 24841                  0.00008 
 * The clock frequency of the DL processor is: 300MHz

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

  1. Создайте пользовательский объект настройки процессора класса dlhdl.ProcessorConfig.

  2. Создайте объект класса workflow при помощи dlhdl.Workflow класс.

  3. Вызовите estimate функция для объекта рабочего процесса.

  4. Например:

    hPC = dlhdl.ProcessorConfig;
    snet = vgg19;
    hW = dlhdl.Workflow('Network', snet, 'ProcessorConfig',hPC);
    result = hW.estimate('Performance');
    
    

    Результат оценки:

                 Deep Learning Processor Estimator Performance Results
    
                       LastLayerLatency(cycles)   LastLayerLatency(seconds)       FramesNum      Total Latency     Frames/s
                             -------------             -------------              ---------        ---------       ---------
    Network                  202770372                  1.01385                       1          202770372              1.0
        conv_module          158812469                  0.79406 
            conv1_1            2022004                  0.01011 
            conv1_2           15855549                  0.07928 
            pool1              2334753                  0.01167 
            conv2_1            7536365                  0.03768 
            conv2_2           14837392                  0.07419 
            pool2              1446960                  0.00723 
            conv3_1            7950445                  0.03975 
            conv3_2           14365933                  0.07183 
            conv3_3           14365933                  0.07183 
            conv3_4           14365933                  0.07183 
            pool3               930145                  0.00465 
            conv4_1            7073684                  0.03537 
            conv4_2           13761300                  0.06881 
            conv4_3           13761300                  0.06881 
            conv4_4           13761300                  0.06881 
            pool4               572644                  0.00286 
            conv5_1            3432645                  0.01716 
            conv5_2            3432645                  0.01716 
            conv5_3            3432645                  0.01716 
            conv5_4            3432645                  0.01716 
            pool5               140249                  0.00070 
        fc_module             43957903                  0.21979 
            fc6               36535923                  0.18268 
            fc7                5965299                  0.02983 
            fc8                1456681                  0.00728 
     * The clock frequency of the DL processor is: 200MHz

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

развернуть все

Параметр для оценки в виде вектора символов. Если вы задаете Performance, затем функция оценивает эффективность для FramesPerSecond, LatencyInCycles, и Time(s) в формате таблицы.

Введенный в R2020b