Guía do usuario do software Qualcomm TensorFlow Lite SDK
Historial de revisións
Revisión | Data | Descrición |
AA | Setembro 2023 | Lanzamento inicial |
AB | Outubro 2023 |
|
Introdución ás ferramentas Qualcomm TFLite SDK
As ferramentas do kit de desenvolvemento de software Qualcomm TensorFlow Lite (Qualcomm TFLite SDK) proporcionan o marco TensorFlow Lite para a inferencia de intelixencia artificial (IA) no dispositivo, que facilita aos desenvolvedores de aplicacións desenvolver ou executar aplicacións de IA adecuadas.
Este documento ofrece instrucións paso a paso para compilar un SDK de Qualcomm TFLite autónomo e configurar o ambiente de desenvolvemento. Isto permite o fluxo de traballo do programador, que inclúe:
- configurar o ambiente de compilación onde o programador pode compilar o SDK Qualcomm TFLite
- desenvolvendo aplicacións autónomas Qualcomm TFLite SDK
Para obter asistencia, consulte https://www.qualcomm.com/apoiar. A seguinte figura ofrece un resumo do fluxo de traballo de Qualcomm TFLite SDK: "
Figura 1-1 Fluxo de traballo de Qualcomm TFLite SDK
A ferramenta require un SDK de plataforma e unha configuración file (formato JSON) para xerar os artefactos Qualcomm TFLite SDK.
Para crear unha aplicación de extremo a extremo utilizando subsistemas multimedia, intelixencia artificial e visión por ordenador (CV), consulte a Guía de inicio rápido de Qualcomm Intelligent Multimedia SDK (QIM SDK) (80-50450-51).
A táboa mostra a asignación da versión de Qualcomm TFLite SDK coa versión de CodeLinaro tag:
Táboa 1-1 Información da versión
Versión Qualcomm TFLite SDK | Lanzamento de CodeLinaro tag |
V1.0 | Qualcomm TFLITE.SDK.1.0.r1-00200-TFLITE.0 |
Táboa 1-2 Versións compatibles do SDK de Qualcomm TFLite
Qualcomm Versión TFLite SDK | Produto de software compatible | Versión compatible con TFLite |
V1.0 | QCS8550.LE.1.0 |
|
|
||
|
||
|
||
|
||
|
Referencias
Táboa 1-3 Documentos relacionados
Título | Número |
Qualcomm | |
00067.1 Nota de publicación para QCS8550.LE.1.0 | RNO-230830225415 |
Guía de inicio rápido de Qualcomm Intelligent Multimedia SDK (QIM SDK). | 80-50450-51 |
Referencia de Qualcomm Intelligent Multimedia SDK (QIM SDK). | 80-50450-50 |
Recursos | |
https://source.android.com/docs/setup/start/initializing | – |
Táboa 1-4 Siglas e definicións
Acrónimo ou termo | Definición |
AI | Intelixencia artificial |
BIOS | Sistema básico de entrada/saída |
CV | Visión por ordenador |
IPK | O seu paquete file |
QIM SDK | Kit de desenvolvemento de software multimedia Intelligent Qualcomm |
SDK | Kit de desenvolvemento de software |
TFLite | TensorFlow Lite |
XNN | Xth veciño máis próximo |
Configura o ambiente de compilación para as ferramentas de Qualcomm TFLite SDK
As ferramentas Qualcomm TFLite SDK lanzanse en forma de orixe; polo tanto, establecer o ambiente de compilación para compilalo é unha configuración obrigatoria pero única.
Requisitos previos
- Asegúrese de ter acceso sudo á máquina host Linux.
- Asegúrese de que a versión do servidor Linux sexa Ubuntu 18.04 ou Ubuntu 20.04.
- Aumenta o número máximo de reloxos de usuario e de instancias de usuario máximas no sistema host.
- Engade as seguintes liñas de comando a/etc/sysctl.conf e reinicie o host: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288
Instale os paquetes de host necesarios
Os paquetes host están instalados na máquina host Linux.
Executa os comandos para instalar os paquetes de host: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Para Ubuntu 18.04 e superior:
$ sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5- dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc descomprimir fontconfig
Para obter máis información, consulte https://source.android.com/docs/setup/start/initializing.
Configura o ambiente docker
Un docker é unha plataforma utilizada para construír, desenvolver, probar e entregar software. Para compilar o SDK, o docker debe estar configurado na máquina host Linux.
Asegúrese de que a virtualización da CPU estea activada na máquina host Linux. Se non está activado, faga o seguinte para activalo desde a configuración básica do sistema de entrada/saída (BIOS):
- Activar a virtualización desde o BIOS:
a. Preme F1 ou F2 cando o sistema estea iniciando para entrar na BIOS. Móstrase a xanela da BIOS.
b. Cambia á pestana Avanzado.
c. Na sección Configuración da CPU, configure Tecnoloxía de virtualización como Activada.
a. Preme F12 para gardar e saír, e despois reinicia o sistema.
Se estes pasos non funcionan, siga as instrucións específicas do provedor do sistema para activar a virtualización - Elimina todas as instancias antigas do docker:
$ sudo apt remove docker-desktop
$ rm -r $HOME/.docker/desktop
$ sudo rm /usr/local/bin/com.docker.cli
$ sudo apt purge docker-desktop - Configura o repositorio remoto docker:
$ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg — dearmor -o /etc/apt/keyrings/docker.gpg $ echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/ keyrings/ docker.gpg] https:// download.docker.com/linux/ubuntu $ (lsb_release -cs) estable” | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null - Instalar o motor docker:
$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli - Engadir usuario ao grupo docker:
$ sudo groupadd docker $ sudo usermod -aG docker $USER - Reinicie o sistema.
Xerar SDK da plataforma
O SDK da plataforma é un requisito obrigatorio para compilar as ferramentas Qualcomm TFLite SDK. Ofrece todas as dependencias da plataforma requiridas polo SDK de Qualcomm TFLite.
Fai o seguinte para xerar o SDK da plataforma:
- Crea unha compilación para o produto de software preferido.
As instrucións para crear a versión QCS8550.LE.1.0 ofrécense nas notas da versión. Para acceder ás notas da versión, consulte Referencias.
Se as imaxes foron creadas previamente, execute o paso 2 e, a continuación, cree unha compilación limpa. - Executa o seguinte comando para crear as imaxes do espazo do usuario e o SDK da plataforma:
Para QCS8550.LE.1.0, engade a función de máquina qti-tflite-delegate en MACHINE_FEATURES no kalama.conf file e fonte do ambiente de compilación segundo as instrucións das notas de versión.
Despois de xerar imaxes de espazo de usuario desde a compilación, execute o seguinte comando para xerar o SDK da plataforma.
$ bitbake -fc populate_sdk qti-robotics-image
Crea ferramentas Qualcomm TFLite SDK: fluxo de traballo para desenvolvedores
O fluxo de traballo das ferramentas Qualcomm TFLite SDK require que o programador proporcione a configuración file con entradas de entrada válidas. Os scripts de shell de axuda do proxecto tflite-tools (presentes na árbore de orixe do SDK de Qualcomm TFLite) proporcionan funcións de utilidade auxiliar para configurar o ambiente de shell, que se poden usar para o fluxo de traballo de Qualcomm TFLite SDK.
O programador constrúe os proxectos Qualcomm TFLite SDK dentro do contedor e xera os artefactos utilizando as utilidades proporcionadas por tflite-tools.
Despois de construír un contenedor Qualcomm TFLite SDK, o desenvolvedor pode conectarse ao contedor e utilizar as utilidades auxiliares no contorno do shell do contenedor para o desenvolvemento continuo.
- Existe unha disposición para instalar os artefactos Qualcomm TFLite SDK nun dispositivo Qualcomm conectado ao host Linux mediante USB/adb.
- Tamén hai unha disposición para copiar os artefactos Qualcomm TFLite SDK do contedor a unha máquina host diferente onde estea conectado o dispositivo Qualcomm.
A seguinte figura enumera o conxunto de utilidades dispoñibles despois de configurar o ambiente de compilación do contedor mediante os scripts auxiliares para construír o SDK Qualcomm TFLite.
A figura mostra a secuencia de execución das utilidades:
Figura 4-3 Secuencia de utilidades no host
Sincroniza e crea o SDK Qualcomm TFLite
O Qualcomm TFLite SDK compílase cando se crea a imaxe docker. Para sincronizar e construír o SDK de Qualcomm TFLite, faga o seguinte:
- Crea un directorio no host file sistema para sincronizar o espazo de traballo Qualcomm TFLite SDK. Para
exampLe: $mkdir $cd - Obtén o código fonte do SDK Qualcomm TFLite de CodeLinaro:
$ repo init -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ manifest.git –repo-branch=qc/stable –repo-url=git://git.quicinc.com/ tools/repo.git -m TFLITE.SDK.1.0.r1-00200-TFLITE.0.xml -b release && repo sync -qc –no-tags -j - Crea un directorio no host file sistema que se pode montar en docker. Por example: mkdir-p / Este directorio pódese crear en calquera lugar da máquina host Linux e non depende de onde se sincronice o proxecto Qualcomm TFLite SDK. Despois de completar o fluxo de traballo no contedor, os artefactos de Qualcomm TFLite SDK pódense atopar no directorio creado neste paso.
- Edite a configuración JSON file presente en /tflite-tools/ targets/le-tflite-tools-builder.json coas seguintes entradas:
“Imaxe”: “tflite-tools-builder”, “Device_OS”: “le”, “Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “OFF”, “Gpu_delegate”: “ON”, “Xnnpack_delegate”: “ON” }, “TFLite_rsync_destination”: “ /”, “SDK_path”: “/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>”, “SDK_shell_file”: “”, “Base_Dir_Location”: “” }
Para obter máis información sobre as entradas mencionadas na configuración json file, consulte o Leame de Docker.md file en /tflite-tools/.
NOTA Para QCS8550, o delegado Qualcomm® Hexagon™ DSP non é compatible. - Fonte do script para configurar o ambiente:
$ cd /tflite-tools $ source ./scripts/host/docker_env_setup.sh - Crea a imaxe de acoplamento do SDK Qualcomm TFLite: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json Se a configuración de compilación falla, consulte Solución de problemas de configuración do acoplador. Despois de completar con éxito, móstrase a seguinte mensaxe: "Estado: a creación da imaxe foi completada con éxito!!" Ao executar este paso tamén se crea o SDK Qualcomm TFLite.
- Execute o contenedor docker Qualcomm TFLite SDK. Isto comeza o recipiente co tags proporcionado na configuración JSON file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
- Axúdase ao recipiente iniciado desde o paso anterior.
$ docker attach
Compilouse o SDK de Qualcomm TFLite e os artefactos están listos para ser implantados ou poden
usado para xerar o complemento QIM SDK TFLite.
Conectar o dispositivo para aloxar e implementar artefactos]
Despois da compilación, hai dous mecanismos para conectar o dispositivo a un host e implementar
Artefactos de Qualcomm TFLite SDK.
- Dispositivo conectado a un host Linux local:
Un programador conecta o dispositivo a unha estación de traballo e instala os artefactos Qualcomm TFLite SDK desde o contedor directamente no dispositivo (QCS8550). - Dispositivo conectado a un host remoto:
Un programador conecta o dispositivo a unha estación de traballo remota e pode usar os comandos do instalador do xestor de paquetes en plataformas Windows e Linux para instalar os artefactos Qualcomm TFLite SDK no dispositivo (QCS8550)
Figura 4-4 Conexión da placa do dispositivo ao programador e estación de traballo remota
Conecta o dispositivo á estación de traballo
O dispositivo está conectado á estación de traballo e o contedor de desenvolvemento pode acceder ao dispositivo a través de USB/adb.
A figura mostra o stagestá na secuencia do fluxo de traballo Qualcomm TFLite SDK:
- Executa os seguintes comandos para instalar os artefactos no dispositivo:
$ tflite-tools-dispositivo-preparar
$ tflite-tools-device-deploy - Para desinstalar os artefactos, execute o seguinte comando:
$ tflite-tools-device-packages-remove
Conecta o dispositivo á máquina remota
O dispositivo está conectado a unha máquina remota e o contenedor Qualcomm TFLite SDK non pode acceder ao dispositivo a través de USB/anuncio b.
A figura mostra o stagestá na secuencia do fluxo de traballo Qualcomm TFLite SDK:
Executa os seguintes comandos no contedor tflite-tools para copiar os artefactos nunha máquina remota
dependendo do xestor de paquetes do dispositivo:
$ tflite-tools-remote-sync-ipk-rel-pkg
NOTA A información da máquina remota proporciónase na configuración JSON file.
Instalar artefactos para a plataforma Windows
Os artefactos Qualcomm TFLite SDK pódense instalar no dispositivo en función do sistema operativo da máquina remota.
Para a plataforma Windows, faga o seguinte:
En PowerShell, use o seguinte script: PS C:
> adb root PS C:> adb disable-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb root PS C:> adb remount PS C:> adb shell mount -o remount, rw / PS C:> adb shell “mkdir -p /tmp” PS C:> adb push /tmp Se o paquete é un ipk (para QCS8550.LE.1.0), use os seguintes comandos: PS C:> adb shell “ opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
Instalar artefactos para a plataforma Linux
Use os seguintes comandos:
$ adb root $ adb disable-verity $ adb reboot $ adb wait-for-device $ adb root $ adb remount $ adb shell mount -o remount,rw / $ adb shell “mkdir -p /tmp” $ adb push /tmp If o paquete é un ipk (para QCS8550.LE.1.0): $ adb shell “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
Limpar a imaxe do docker
Despois de completar o fluxo de traballo do programador, débese limpar o ambiente docker para liberar o almacenamento no disco. Ao limpar o acoplador elimina os recipientes e imaxes non utilizados, liberando así o espazo no disco.
Use os seguintes comandos para limpar a imaxe do docker:
- Executa o seguinte comando na estación de traballo Linux:
$ cd /tflite-tools - Pare o recipiente:
$ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json - Retire o recipiente:
$ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json - Elimina as imaxes do docker máis antigas:
$ tflite-tools-host-images-cleanup
Solucionar problemas de configuración do docker
Se o comando tflite-tools-host-build-image devolve unha mensaxe Nospace left no dispositivo, move o directorio docker a/local/mnt. Fai o seguinte para solucionar problemas coa configuración:
- Fai unha copia de seguranza do docker existente files:
$ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(data + %s).tar.gz - Detén o docker:
$ service docker stop - Verifique que non se está a executar ningún proceso docker:
$ ps falso | grep docker - Comprobe a estrutura do directorio docker:
$ sudo ls /var/lib/docker/ - Move o directorio docker a unha nova partición:
$ mv /var/lib/docker /local/mnt/docker - Fai unha ligazón simbólica ao directorio docker na nova partición:
$ ln -s /local/mnt/docker /var/lib/docker - Asegúrese de que a estrutura do directorio docker permanece sen cambios:
$ sudo ls /var/lib/docker/ - Iniciar docker:
$ service docker inicio - Reinicie todos os contedores despois de mover o directorio docker.
Xera TFLite SDK coa estación de traballo Linux
O fluxo de traballo de TFLite SDK pódese activar sen contedores usando a estación de traballo Linux. Este procedemento é unha alternativa ao uso de envases.
Para sincronizar e construír o SDK de Qualcomm TFLite, faga o seguinte:
- Crea un directorio no host file sistema para sincronizar o espazo de traballo Qualcomm TFLite SDK. Por exampLe:
$mkdir
$cd - Obtén o código fonte do SDK Qualcomm TFLite de CodeLinaro:
$ repo init -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ manifest.git –repo-branch=qc/stable –repo-url=git://git.quicinc.com/ tools/repo.git -m TFLITE.SDK.1.0.r1-00200-TFLITE.0.xml -b release && repo sync -qc –no-tags -j8 && repo sync -qc –no-tags -j8 - 3. Edite a configuración JSON file presente en /tflite-tools/ targets/le-tflite-tools-builder.json coas seguintes entradas
“Imaxe”: “tflite-tools-builder”, “Device_OS”: “le”, “Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “OFF”, “Gpu_delegate”: “ON”, “Xnnpack_delegate”: “ON” }, “TFLite_rsync_destination”: “ ”, “SDK_path”: “/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>”, “SDK_shell_file”: “”, “Base_Dir_Location”: “”
Para obter máis información sobre as entradas mencionadas na configuración json file, consulte o Leame de Docker.md file ás /tflite-tools/.
NOTA Para QCS8550, o delegado Hexagon DSP non é compatible - Fonte do script para configurar o ambiente:
$ cd /tflite-tools
$ source ./scripts/host/host_env_setup.sh - Crea o SDK Qualcomm TFLite.
$ tflite-tools-setup targets/le-tflite-tools-builder.json - Executa os seguintes comandos de utilidade no mesmo shell de Linux para recoller os artefactos do SDK de TFLite
TFLite_rsync_destination.
$ tflite-tools-host-get-rel-package targets/le-tflite-tools-builder.json
$ tflite-tools-host-get-dev-package targets/le-tflite-tools-builder.json - Instalar artefactos baseados no sistema operativo
- Para a plataforma Windows, en PowerShell, use o seguinte script
PS C:> adb root PS C:> adb disable-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb root PS C:> adb remount PS C:> adb shell mount - o remontar,rw / PS C:> adb shell “mkdir -p /tmp” PS C:> adb push /tmp
Se o paquete é un ipk (para QCS8550.LE.1.0), use os seguintes comandos:
PS C:> adb shell "opkg –force-depends –force-reinstall –forceoverwrite install /tmp/
Para a plataforma Linux, use o seguinte script:
$ adb root $ adb disable-verity $ adb reiniciar $ adb wait-for-device $ adb root $ adb remount $ adb shell mount -o remount,rw / $ adb shell “mkdir -p /tmp” $ adb push /tmp Se o paquete é un ipk (para QCS8550.LE.1.0):
$ adb shell “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
- Para a plataforma Windows, en PowerShell, use o seguinte script
Xera artefactos Qualcomm TFLite SDK para a compilación de QIM SDK
Para utilizar os artefactos xerados para activar o complemento Qualcomm TFLite SDK GStreamer no QIM SDK, faga o seguinte:
- Complete o procedemento en Sincronización e constrúe o SDK de Qualcomm TFLite e, a continuación, execute o seguinte comando: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
Un alcatrán file xérase. Contén o SDK Qualcomm TFLite na ruta indicada en "TFLite_rsync_destination" - Para activar o complemento Qualcomm TFLite SDK GStreamer, use o tar file como argumento na configuración JSON file para a compilación de QIM SDK.
Para obter información sobre como compilar QIM SDK, consulte a Guía de inicio rápido de Qualcomm Intelligent Multimedia SDK (QIM SDK) (80-50450-51).
Constrúe o SDK de Qualcomm TFLite de forma incremental
Se está a construír o SDK de Qualcomm TFLite por primeira vez, consulte Construír ferramentas de SDK de Qualcomm TFLite: fluxo de traballo para desenvolvedores. O mesmo ambiente de compilación pódese reutilizar para o desenvolvemento incremental.
As utilidades auxiliares (dentro do contedor) mencionadas na figura están dispoñibles para os desenvolvedores para compilar aplicacións e complementos modificados.
Figura 5-1 Fluxo de traballo nun contedor
Despois de que se completen os cambios de código no directorio de códigos, faga o seguinte:
- Compilar código modificado:
$ tflite-tools-incremental-build-install - Código compilado do paquete:
$ tflite-tools-ipk-rel-pkg ou $ tflite-tools-deb-rel-pkg - Sincronizar paquetes de versión co host file sistema:
$ tflite-tools-remote-sync-ipk-rel-pkg
Or
$ tflite-tools-remote-sync-deb-rel-pkg - Prepare un paquete de desenvolvemento:
$ tflite-tools-ipk-dev-pkg
Os artefactos compilados atópanse no cartafol TFLite_rsync_destination mencionado no JSON file, que se pode copiar en calquera directorio.
Traballa co delegado externo de QNN TFLite
Un delegado externo de TFLite permítelle executar os seus modelos (parte ou enteiro) noutro executor usando bibliotecas proporcionadas por un terceiro de confianza como QNN de Qualcomm. Este mecanismo pode aproveitar unha variedade de aceleradores no dispositivo, como a GPU ou o procesador de tensor hexagonal (HTP) para a inferencia. Isto proporciona aos desenvolvedores un método flexible e desacoplado do TFLite predeterminado para acelerar a inferencia.
Requisitos previos:
- Asegúrate de usar unha estación de traballo Ubuntu para extraer a pila de QNN AI.
- Asegúrate de usar unha versión 2.14 de QNN para estar en conxunto co SDK de Qualcomm TFLite
O SDK de Qualcomm TFLite está habilitado para executar inferencias en varios back-ends de QNN a través de Delegado externo de TFLite para QNN. Os modelos TFLite cunha representación común de búfer plano pódense executar en GPU e HTP.
Despois de instalar os paquetes Qualcomm TFLite SDK no dispositivo, faga o seguinte para instalar as bibliotecas QNN no dispositivo.
- Descarga Qualcomm Package Manager 3 para Ubuntu.
a. Fai clic https://qpm.qualcomm.com/ e fai clic en Ferramentas.
b. No panel esquerdo, no campo Ferramentas de busca, escriba QPM. Na lista do sistema operativo, seleccione Linux.
Os resultados da busca mostran unha lista de xestores de paquetes Qualcomm.
c. Seleccione Qualcomm Package Manager 3 e descargue o paquete Linux debian. - Instale Qualcomm Package Manager 3 para Linux. Use o seguinte comando:
$ dpkg -i –force-overwrite /ruta/a/
QualcommPackageManager3.3.0.83.1.Linux-x86.deb - Descarga Qualcomm®
AI Engine Direct SDK na estación de traballo Ubuntu.
a. Fai clic en https://qpm.qualcomm.com/ e prema en Ferramentas.
b. No panel esquerdo, no campo Ferramentas de busca, escriba AI stack. Na lista do sistema operativo, seleccione Linux.
A Móstrase unha lista despregable que contén varios motores de pila de AI.
c. Fai clic en Qualcomm® AI Engine Direct SDK e descarga o paquete Linux v2.14.0. - Instala Qualcomm® AI Engine Direct SDK na estación de traballo Ubuntu.
a. Activa a licenza:
qpm-cli –license-activate qualcomm_ai_engine_direct
b Instalar AI Engine Direct SDK:
$ qpm-cli –extract /path/to/qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik - Envía bibliotecas ao dispositivo desde a estación de traballo de Ubuntu con adb push.
$ cd /opt/qcom/aistack/qnn/2.14.0.230828 $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnDsp.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnDspV66Stub.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnGpu.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnHtpPrepare.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnHtp.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnHtpV68Stub.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnSaver.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnSystem.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnTFLiteDelegate.so /usr/lib/ $ adb push ./lib/hexagon-v65/ unsigned/ libQnnDspV65Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v66/unsigned/ libQnnDspV66Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v68/unsigned libQnnHtpV68Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v69/unsigned/ libQnnHtpV69Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v73/unsigned/V libQ73nSkelt. polo que /usr/lib/rfsa/adsp
Proba o SDK Qualcomm TFLite
O SDK Qualcomm TFLite ofrece certos example, que se poden usar para validar, comparar e obter a precisión dos modelos que un desenvolvedor quere avaliar.
Despois de instalar os paquetes Qualcomm TFLite SDK no dispositivo, o tempo de execución está dispoñible no dispositivo para executar estes ex.ampas aplicacións.
Requisito previo
Cree os seguintes directorios no dispositivo:
$ adb shell "mkdir /data/Models"
$ adb shell "mkdir /data/Lables"
$ adb shell "mkdir /data/profiling"
Imaxe da etiqueta
Unha imaxe de etiqueta é unha utilidade proporcionada polo SDK Qualcomm TFLite que mostra como se pode cargar un modelo TensorFlow Lite adestrado e convertido e usalo para recoñecer obxectos nas imaxes. Requisitos previos:
Descargar sampmodelo e imaxe:
Podes usar calquera modelo compatible, pero o seguinte modelo de MobileNet v1 ofrece unha boa demostración dun modelo adestrado para recoñecer 1000 obxectos diferentes.
- Obter modelo
$ curl https://storage.googleapis.com/download.tensorflow.org/models/ mobilenet_v1_2018_02_22/mobilenet_v1_1.0_224.tgz | tar xzv -C /data $ mv /data/mobilenet_v1_1.0_224.tflite /data/Models/ - Obter etiquetas
$ curl https://storage.googleapis.com/download.tensorflow.org/models/ mobilenet_v1_1.0_224_frozen.tgz | tar xzv -C /data mobilenet_v1_1.0_224/labels.txt
$ mv /data/mobilenet_v1_1.0_224/labels.txt /data/Labels/
Despois de conectarse ao contedor docker Qualcomm TFLite SDK, pódese atopar a imaxe en:
“/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp”
a. Empuxa isto file a/datos/etiquetas/
b. Executar o comando:
$ adb shell "label_image -l /data/Labels/labels.txt -i /data/Labels/grace_hopper.bmp -m /data/Models/mobilenet_v1_1.0_224.tflite -c 10 -j 1 -p 1"
Referencia
O SDK de Qualcomm TFLite ofrece a ferramenta de benchmarking para calcular o rendemento de varios tempos de execución.
Estas ferramentas de referencia actualmente miden e calculan estatísticas para as seguintes métricas de rendemento importantes:
- Tempo de inicialización
- Tempo de inferencia do estado de quecemento
- Tempo de inferencia do estado estacionario
- Uso da memoria durante o tempo de inicialización
- Uso global da memoria
Requisitos previos
Empuxe os modelos para probar desde TFLite Model Zoo (https://tfhub.dev/) a/datos/Modelos/. Executar o seguintes guións:
- Paquete XNN
$ adb shell “benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_xnnpack=true –num_threads=4 –max_secs=300 –profiling_output_csv_file=/datos/perfil/” - Delegado GPU
$ adb shell “benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_gpu=true –num_runs=100 –warmup_runs=10 — max_secs=300 –profiling_output_csv_file=/datos/perfil/” - Delegado Externo
GPU de delegado externo de QNN:
Executar inferencia co modelo de coma flotante:
$ adb shell-command “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:gpu;library_path:/usr/lib/ libQnnGpu.so;skel/rflbsr/ /adsp'"
QNN Delegado Externo HTP:
Executar inferencia co modelo cuántico:
$ adb shell-command “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:htp;library_path:/usr/lib/ libQnnHtp.so;libQnnHtp.so;skel/rfsbrary_lib/dir:_fsbrary /adsp'”
Ferramenta de precisión
O SDK Qualcomm TFLite ofrece unha ferramenta de precisión para calcular a precisión dos modelos con varios tempos de execución.
- Clasificación con delegado GPU
Os pasos para descargar o necesario files para probar pódense atopar en: "/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/ imagenet_image_classificatio/README.md"
O binario para executar esta ferramenta xa forma parte do SDK, polo que o programador non necesita construílo de novo.
$ adb shell "image_classify_run_eval — model_file=/data/Models/ –ground_truth_images_path=/data/ — ground_truth_labels=/data/ –model_output_labels=/ data/ –delegate=gpu” - Detección de obxectos co paquete XNN
$ adb shell "inf_diff_run_eval –model_file=/datos/Modelos/ –delegate=xnnpac
INFORMACIÓN LEGAL
O teu acceso e uso deste documento, xunto con calquera especificación, cadro de referencia files, debuxos, diagnósticos e outra información contida aquí (colectivamente esta "Documentación"), está suxeito ao teu (incluída a corporación ou outra persoa xurídica que representas, colectivamente). "Ti" ou "O teu") aceptación dos termos e condicións ("Condicións de uso") establecido a continuación. Se non está de acordo con estas Condicións de uso, non poderá utilizar esta Documentación e destruirá inmediatamente calquera copia desta.
- Aviso Legal.
Esta documentación está dispoñible para vostede unicamente para o seu uso interno con aqueles produtos e ofertas de servizos de Qualcomm Technologies, Inc. ("Qualcomm Technologies") e as súas filiales descritos nesta documentación, e non se utilizará para ningún outro propósito. Esta Documentación non pode ser alterada, editada ou modificada de ningún xeito sen a aprobación previa por escrito de Qualcomm Technologies. Uso ou divulgación non autorizado deste
A documentación ou a información contida aquí está estrictamente prohibida, e vostede acepta indemnizar a Qualcomm Technologies, os seus afiliados e licenciantes por calquera dano ou perda sufrida por Qualcomm Technologies, os seus afiliados e licenciantes por calquera uso ou divulgación non autorizado desta Documentación, na súa totalidade ou parte. Qualcomm Technologies, os seus afiliados e licenciantes conservan todos os dereitos e propiedade sobre esta Documentación. Non se concede ningunha licenza para ningunha marca rexistrada, patente, copyright, dereito de protección do traballo de máscara ou calquera outro dereito de propiedade intelectual por parte desta Documentación ou calquera información divulgada nesta, incluída, pero non limitada a, calquera licenza para facer, usar, importar ou vender calquera produto, servizo ou oferta de tecnoloxía que incorpore algunha da información desta Documentación.
ESTA DOCUMENTACIÓN ESTÁ A PROPORCIONARSE "TAL CUAL" SEN GARANTÍA DE NINGÚN TIPO, XERA EXPRESA, IMPLÍCITA, LEGAL OU DE OUTRO MODO. NA MEDIDA MÁXIMA PERMITIDA POLA LEI, QUALCOMM TECHNOLOGIES, AS SÚAS AFILIADAS E LICITADORES RENUNCIAMOS ESPECÍFICAMENTE A TODAS LAS GARANTÍAS DE TÍTULO, COMERCIABILIDADE, NON INFRACCIÓN, ADECUACIÓN PARA UN FIN PARTICULAR, SATISFACCIÓN E GARANTÍA DE CALIDADE USO COMERCIO OU FÓRA DUN CURSO DE TRATAMENTO OU CURSO DE ACTUACIÓN. Ademais, NINGUNHA QUALCOMM TECHNOLOGIES, NINGUNHA DAS SÚAS AFILIADAS OU LICENCIADORES, SERÁ RESPONSABLE ANTE TI OU NINGUNHA TERCEIRA POR NINGÚN GASTO, PERDA, USO OU ACCIÓN DE CALQUERA DAS QUE TISTE OU RECOMENDADAS EN CONFIANZA CON ESTA DOCUMENTACIÓN.
Algúns kits de produtos, ferramentas e materiais aos que se fai referencia nesta documentación poden requirir que acepte termos e condicións adicionais antes de acceder ou utilizar eses elementos.
Os datos técnicos especificados nesta documentación poden estar suxeitos ás leis de control de exportacións dos EUA e outras aplicables. A transmisión contraria aos EUA e calquera outra lei aplicable está estrictamente prohibida.
Nada desta documentación é unha oferta para vender ningún dos compoñentes ou dispositivos aos que se fai referencia.
Esta documentación está suxeita a cambios sen máis notificación. En caso de conflito entre estas Condicións de uso e a WebCondicións de uso do sitio en www.qualcomm.com ou a Política de privacidade de Qualcomm á que se fai referencia www.qualcomm.com, estes Termos de Uso controlarán. En caso de conflito entre estas Condicións de uso e calquera outro acordo (escrito ou mediante clic) executado por vostede e Qualcomm Technologies ou unha filial de Qualcomm Technologies con respecto ao seu acceso e uso desta documentación, o outro acordo controlará .
Estas Condicións de uso rexiranse e interpretaranse e aplicaranse de acordo coas leis do Estado de California, excluíndo a Convención da ONU sobre a venda internacional de mercadorías, sen ter en conta os principios de conflito de leis. Calquera disputa, reclamación ou controversia que xurda ou se relacione con estas Condicións de uso, ou o incumprimento ou a validez destas, só será xulgada por un tribunal de xurisdición competente no condado de San Diego, Estado de California, e vostede acepta, a competencia persoal destes tribunais para tal fin. - Declaracións de atribución de marcas comerciais e produtos.
Qualcomm é unha marca comercial ou marca rexistrada de Qualcomm Incorporated. Arm é unha marca rexistrada de Arm Limited (ou das súas filiais) nos EUA e/ou noutros lugares. A marca denominativa Bluetooth® é unha marca rexistrada propiedade de Bluetooth SIG, Inc. Outros produtos e nomes de marca aos que se fai referencia nesta documentación poden ser marcas comerciais ou marcas rexistradas dos seus respectivos propietarios.
Os produtos de marca Snapdragon e Qualcomm aos que se fai referencia nesta documentación son produtos de Qualcomm Technologies, Inc. e/ou das súas subsidiarias. As tecnoloxías patentadas de Qualcomm están licenciadas por Qualcomm Incorporated.
Documentos/Recursos
![]() |
Software Qualcomm TensorFlow Lite SDK [pdfGuía do usuario Software TensorFlow Lite SDK, Software Lite SDK, Software SDK, Software |