Предсказание глубокого обучения на ARM Мали графический процессор

В этом примере показано, как использовать cnncodegen функция, чтобы сгенерировать код для приложения классификации изображений, которое использует глубокое обучение на ARM® Mali графические процессоры. Пример использует MobileNet-v2 Сеть DAG, чтобы выполнить классификацию изображений. Сгенерированный код использует в своих интересах библиотеку ARM Compute для компьютерного зрения и машинного обучения.

Необходимые условия

  • ARM Мали основанное на графическом процессоре оборудование. Например, HiKey960 является одной из целевых платформ, которая содержит графический процессор Мали.

  • ARM Вычисляет Библиотеку по целевому оборудованию ARM, созданному для графического процессора Мали.

  • Библиотека Компьютерного зрения с открытым исходным кодом (OpenCV v2.4.9) на целевом оборудовании ARM.

  • Переменные окружения для компиляторов и библиотек. Убедитесь, что ARM_COMPUTE и LD_LIBRARY_PATH переменные установлены на целевой платформе. Для получения информации о поддерживаемых версиях компиляторов и библиотек, смотрите Стороннее Оборудование. Для подготовки переменных окружения смотрите Подготовку Необходимых как условие продуктов.

Будьте предварительно обучены DAGNetwork

Загрузите предварительно обученный MobileNet-v2 сеть, доступная в Deep Learning Toolbox Model for MobileNet-v2 Network.

net = mobilenetv2
net = 
  DAGNetwork with properties:

         Layers: [154×1 nnet.cnn.layer.Layer]
    Connections: [163×2 table]
     InputNames: {'input_1'}
    OutputNames: {'ClassificationLayer_Logits'}

Сеть содержит 155 слоев включая свертку, нормализацию партии., softmax, и классификацию выходные слои. analyzeNetwork() функционируйте отображает интерактивный график сетевой архитектуры и таблицу, содержащую информацию о слоях сети.

analyzeNetwork(net);

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

Для глубокого обучения на целях ARM вы генерируете код по компьютеру разработчика хоста. Чтобы создать и запустить исполняемую программу, переместите сгенерированный код в целевую платформу ARM. Целевая платформа должна иметь графический процессор ARM Mali. Например, HiKey960 является одной из целевых платформ, на которых можно выполнить код, сгенерированный в этом примере.

Вызовите cnncodegen функция, задавая целевую библиотеку как arm-compute-mali.

cnncodegen(net,'targetlib','arm-compute-mali');

Скопируйте сгенерированные файлы в цель

Переместите сгенерированную codegen папку и другие необходимые файлы от компьютера разработчика хоста до целевой платформы при помощи вашего предпочтительного SCP (Безопасный Протокол копирования) или Защитите протокол передачи файлов Shell (SSH) клиент.

Например, на платформе Linux®, чтобы передать файлы HiKey960, используют scp команду с форматом:

system('sshpass -p [password] scp (sourcefile) [username]@[targetname]:~/');

system('sshpass -p password scp main_mobilenet_arm_generic.cpp username@targetname:~/');
system('sshpass -p password scp peppers_mobilenet.png username@targetname:~/');
system('sshpass -p password scp makefile_mobilenet_arm_generic.mk username@targetname:~/');
system('sshpass -p password scp synsetWords.txt username@targetname:~/');
system('sshpass -p password scp -r codegen username@targetname:~/');

На платформе Windows® можно использовать pscp инструмент, который идет с установкой PuTTY. Например:

system('pscp -pw password-r codegen username@targetname:/home/username');

Утилиты PSCP должны быть или на вашем ПУТИ или в вашей текущей папке.

Исполняемый файл сборки

Чтобы создать библиотеку по целевой платформе, используйте сгенерированный make-файл cnnbuild_rtw.mk.

Например, чтобы создать библиотеку по HiKey960:

system('sshpass -p password ssh username@targetname' ...
' "make -C /home/username/codegen -f cnnbuild_rtw.mk"');

На платформе Windows можно использовать putty команда с -ssh аргумент, чтобы войти в систему и запустить сделать команду. Например:

system('putty -ssh username@targetname -pw password');

Чтобы создать и запустить исполняемый файл на целевой платформе, используйте команду с форматом: make -C /home/$(username) и ./execfile -f makefile_mobilenet_arm_generic.mk

Например, на HiKey960:

make -C /home/usrname arm_mobilenet -f makefile_mobilenet_arm_generic.mk

Запустите исполняемый файл на платформе ARM, задающей входной файл изображения.

./mobilenet_exe peppers_mobilenet.png

Лучшие пять предсказаний для входного файла изображения:

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

Функции

Похожие темы