Запуск вывода профиля

Просмотрите данные предсказания и эффективности сети для слоев, модуля свертки и полносвязных модулей в предварительно обученной последовательной сети. Пример показывает, как получить результаты предсказания и профилировщика для ResNet-18 сети.

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

  2. Установите предварительно обученные нейронные сети для глубокого обучения и битовый поток для объекта рабочего процесса.

  3. Создайте объект класса dlhdl.Target и укажите целевого поставщика и интерфейс.

  4. Чтобы развернуть сеть на указанной целевой плате FPGA, вызовите deploy метод для объекта рабочего процесса.

  5. Вызовите predict функция для объекта рабочего процесса. Предоставьте массив изображений как InputImage параметр. Укажите аргументы для включения профилировщика.

    Метки, классифицирующие изображения, хранятся в структуре struct и отобразится на экране. Параметры эффективности скорости и задержки возвращаются в структуре struct.

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

snet = resnet18;
hT = dlhdl.Target('Xilinx','Interface','Ethernet');
hW = dlhdl.Workflow('Net', snet, 'Bitstream', 'zcu102_single','Target',hT);
hW.deploy;
image = imread('zebra.jpeg');
inputImg = imresize(image, [224, 224]);
imshow(inputImg);
[prediction, speed] = hW.predict(single(inputImg),'Profile','on');
[val, idx] = max(prediction);
snet.Layers(end).ClassNames{idx}

### Finished writing input activations.
### Running single input activations.


              Deep Learning Processor Profiler Performance Results

                   LastFrameLatency(cycles)   LastFrameLatency(seconds)       FramesNum      Total Latency     Frames/s
                         -------------             -------------              ---------        ---------       ---------
Network                   23659630                  0.10754                       1           23659630              9.3
    conv1                  2224115                  0.01011 
    pool1                   572867                  0.00260 
    res2a_branch2a          972699                  0.00442 
    res2a_branch2b          972568                  0.00442 
    res2a                   209312                  0.00095 
    res2b_branch2a          972733                  0.00442 
    res2b_branch2b          973022                  0.00442 
    res2b                   209736                  0.00095 
    res3a_branch2a          747507                  0.00340 
    res3a_branch2b          904291                  0.00411 
    res3a_branch1           538763                  0.00245 
    res3a                   104750                  0.00048 
    res3b_branch2a          904389                  0.00411 
    res3b_branch2b          904367                  0.00411 
    res3b                   104886                  0.00048 
    res4a_branch2a          485682                  0.00221 
    res4a_branch2b          880001                  0.00400 
    res4a_branch1           486429                  0.00221 
    res4a                    52628                  0.00024 
    res4b_branch2a          880053                  0.00400 
    res4b_branch2b          880035                  0.00400 
    res4b                    52478                  0.00024 
    res5a_branch2a         1056299                  0.00480 
    res5a_branch2b         2056857                  0.00935 
    res5a_branch1          1056510                  0.00480 
    res5a                    26170                  0.00012 
    res5b_branch2a         2057203                  0.00935 
    res5b_branch2b         2057659                  0.00935 
    res5b                    26381                  0.00012 
    pool5                    71405                  0.00032 
    fc1000                  216155                  0.00098 
 * The clock frequency of the DL processor is: 220MHz
 

Данные профилировщика возвращают эти параметры и их значения:

  • LastFrameLatency(cycles)- Общее количество тактовых импульсов для выполнения предыдущей системы координат.

  • Частота синхроимпульса - информация тактовой частоты извлекается из битового потока, который использовался для развертывания сети на целевой плате. Для примера профилировщик возвратов * The clock frequency of the DL processor is: 220MHz. Тактовая частота 220 МГц извлекается из zcu102_single битовый поток.

  • LastFrameLatency(seconds)- Общее количество секунд для выполнения предыдущей системы координат. Общее время вычисляется как LastFrameLatency(cycles)/Clock Frequency. Для примера conv_module LastFrameLatency(seconds) вычисляется как 2224115/(220*10^6).

  • FramesNum- Общее количество входных кадров в сеть. Это значение будет использоваться при вычислении Frames/s.

  • Total Latency- Общее количество тактов для выполнения всех слоев сети и модулей для FramesNum.

  • Frames/s- Количество систем координат, обработанных сетью за одну секунду. Общая Frames/s вычисляется как (FramesNum*Clock Frequency)/Total Latency. Для примера Frames/s в примере вычисляется как (1*220*10^6)/23659630.

См. также

| |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте